环境配置
python
版本:3.9.6- 硬件:ESP8266 Node MCU V3(4MB Flash)
- 编辑器:vscode,需要安装
python
扩展和RT-Thread Micro Python
扩展
- 安装
esptool
和ampy
esptool
:在CMD中执行pip install esptool
ampy
:在CMD中执行pip install adafruit-ampy
下载并烧录固件
首先根据模块的Flash大小下载对应的MicroPython固件
我的Flash是4M,所以选择了2MiB+的固件。
下载好之后打开cmd,进入存放刚刚下载好的固件的目录,首先查看开发板的信息:esptool.exe read_mac
可见,开发板连接到COM5,所以之后和 -p、-port相关的参数都应当填 COM5。
然后清除原有的固件:esptool -p COM3 erase_flash
,大约需要半分钟。
最后烧录固件:esptool --port COM5 --baud 460800 write_flash --flash_size=detect 0 esp8266-20220618-v1.19.1.bin
,以460800的波特率,通过COM5把刚刚下载的文件名为esp8266-20220618-v1.19.1.bin的固件烧进flash中。
此时,打开串口助手(115200的波特率),复位板子,就可以进入REPL模式(和python shell类似,可以直接敲命令运行)
注意,若提示信息最后不是Type "help()" for more information.
,则大概是烧录失败了,应当重新烧录或者换一种烧录方式。
上电自动运行程序
上电后,会自动运行文件名为mian.py的脚本文件。
若有安装RT-Thread Micro Python
扩展,则会有提供例程
这里直接新建一个文件并重命名为mian.py
,将blink.py
的内容复制进去。(大概效果是上电后输出"Welcome to RT-Thread MicroPython!",然后进入死循环,控制板载LED灯,亮2s灭0.5秒)。
此时我们需要将这个main.py
文件丢到Flash中,这就需要用到之前安装的 ampy
了。
在CMD中,切换到储存刚刚编写的py文件的路径,首先通过ampy -p COM5 ls
查看当前路径下的所有文件。
啊这,忘记断开串口助手的连接了。。。
断开后在执行一次,可见,只有boot.py
一个文件,不要管这个文件。
再执行ampy -p COM5 put .\main.py
,将main.py烧录到Flash内,再查看一下
呀,手残多传了,这时可以ampy -p COM5 rm .mpyproject.json
来删除。
此时复位之后就可以自动执行main.py了。或者也可以直接再命令行中执行ampy -p COM5 run .\xxx.py
来执行指定到py文件。
退出
在CMD中,一般使用ctrl+c
来终止某条命令。同样地,也可以通过向ESP8266发送ctrl+c
来退出上电自动执行的main()
的死循环。
通过和度娘交流,可知ctrl+c
的ascii为0x03。
所以,直接向串口以16进制发送0x03即可退出。
要想重新运行,就勾选发送新行之后,发送main()
。注意事项
错误记录
- 使用乐鑫的固件烧录软件烧录时,固件可以烧进去,但是上电之后(波特率115200)会不断接收到提示信息,不能进入REPL模式。所以直接用esptool进行烧录。
- 注意,这里不能像在命令行中一样直接运行
main.py
文件来执行,并且需要勾选发送新行,否则不能正常执行,而是返回串口接受到的数据