一、入门
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 中面向对象编程的序幕。
|