桃李春风一杯酒,江湖夜雨十年灯。

一、入门

在这里插入图片描述

1.点灯工程师入门!

第一种点灯(测试板子)

第一步:把开发板接入电脑
第二步:这时你的电脑中会显示有可移动硬盘接入
这时你的电脑中会显示有可移动硬盘接入
第三步:进入该移动硬盘,可以看到

第四步:使用记事本打开 main.py,并且编程*(重点来了)*
在这里插入图片描述
第五步:编写完成后保存文件,这时候 Pyboard 板子上有个 LED 会亮起,一定一定一定等这个灯熄灭后(大约 3~4 秒钟会熄灭),再进行下一步操作,谨记这一点,之后按下复位按键,点灯成功!

第二种点灯(推荐)

同样要实现的功能不要改变,我们也这样编写程序。
使用sublime_text编辑
在这里插入图片描述

from pyb import LED #引用 LED 功能从 pyb 库
import time #引用 time 库,下面我们需要引用 time.sleep()
led = LED(4) #将 LED(4)赋给了 led
led.toggle() #led.toggle() LED(4)翻转
led.on() #led.on() LED(4)点亮
led.off() #led.off() LED(4)熄灭

2.使用 REPL 交互调试

1. REPL 是什么?

很简单,就是串行终端,只不过是用的虚拟串口,也就是print 和程序报错的地方   哈哈哈哈!!!!

在这里插入图片描述

2. REPL 怎么用?

在这里插入图片描述
在这里插入图片描述

3. 两句话让他叫我4声Dad(”print“功能)

在这里插入图片描述
在这里插入图片描述

3.程序怎么写(必看啊!!)

咱们有C语言编写基础,但是python咋写呢?
在这里插入图片描述

1.程序基本框架

废话不多说,以下就是基本框架
在这里插入图片描述
对上述程序的解析,def 那一段是一个子函数,程序入口也是 main,记住这里所谓的入口其实是假的,只是为了格式上的好看,程序入口后,运行 4 次子函数,这段程序没有什么难理解的吧!这就是以后你编写程序的框架,先写上这个框架,以后就在这个框架基础上扩展了。

2.多线程的概念

在C语言里面用的更多的是中断,这么说就应该明了了吧!
在这里插入图片描述
而多线程意思就是张三可以一边抢劫,一边骑车,一边睡觉,一边梦游。
而在多线册线程里面可以写死循环,且不会占用MCU资源(这里后便会解释)
在这里插入图片描述
对上述程序的解析我们看到我们引用了一个名为_thread 功能,多出一个子函数,funA(),在 main 入口后,使用了_thread.start_new_thread(funcA, (1,))开启了一个线程,是否你注意到在线程 A 中有个死循环,用户在这里使用死循环,是不会独占 MCU 资源,不影响 pyboard tool“软启动”功能使用。

3.不推荐直接使用while

下面的这种方式就是
在这里插入图片描述
在这里插入图片描述
编写完这个脚本后,我们在 pyboard-tool 中进行了软启动,发现功能一切正常,第 4 个 LED 灯 1s 亮1s 灭,看似很正常,没有什么毛病。但是你再点一次点击“软启动”时你会发现 REPL 好像不理你了。没有任何反应,发现了吗?这是因为系统“卡死”在了你脚本中的 whlie True:中无法响应你的复位指令,现在系统在埋头与死循环中干活。记下来该怎么做,有两个方法:回pyboard 生成的移动硬盘中,去掉这个死循环,保存好,复位就行,这时 Pyboard-tool 中按“软启动”还是不行,可以使用用另外两只复位方式才行,按一下 RST 按键或者重新上电复位,但这两种复位还是很麻烦的,在我们 Pyboard-tool 中有个强制 REPL 调试,先点这个,再点软启动,就恢复了 REPL 调试了。
分析上述这种情况的原因,这种直接使用 whlie True:方式不是不可以用,只是这种方式有点太自私了,独占了整个系统,对系统调用不够灵活,不建议使用。提醒记住,这种方法我们不推荐使用,也不建议使用,如果 Pyhton 只能这样安装面向过程编程,那 Python 只是比 C 语言更少的代码除此之外没有什么 NB 的价值,我们要的是面向对象编程,让那些成天打磨 C 语言致死都都不能面向对象编程的程序猿都哭去吧!我们已经开启了在 STM32 中面向对象编程的序幕。

Guess you like

Origin blog.csdn.net/Mrli0530/article/details/120314419