1.引言
在之前的文章中,我们在ESP32上成功实现了LED灯的闪烁功能。然而,该功能需要手动在串口终端中执行代码。那么,我们是否可以在ESP32上电后自动执行代码呢?答案是肯定的!本文将介绍如何实现这个功能。
2.安装ampy
首先,让我们来了解一下ampy是什么,可以直接查看下面的官方介绍链接:
https://github.com/scientifichackers/ampy
Adafruit MicroPython Tool (ampy) 是一个通过串口连接与CircuitPython或MicroPython板通信的实用工具。
Ampy旨在成为一个简单的命令行工具,用于在串口连接上操作文件和运行代码。使用ampy,你可以将文件从计算机发送到板载文件系统,从板载文件系统下载文件到计算机,甚至将Python脚本发送到板上执行。
接下来,我们来安装ampy:
pip install adafruit-ampy -upgrade
3.ampy工具使用
前面的2篇文章,我们都是通过直接在Putty终端里写代码或者把Windows里写好的代码复制到Putty终端里执行的。有了ampy后,我们就不需要这么做了,我们可以先在Windows写好MicroPython程序,然后通过ampy工具直接运行程序。
第1步:在Windows里,写一个hello.py文件
print(“Hello World!”)
第2步:直接在DOS窗口里,通过ampy在板子上运行hello.py程序,执行:
ampy –port COM3 run led.py
注意:执行ampy指令前,你得确保串口没有被占用。
如果换成下方的led.py文件
from machine import Pin
import time
led=Pin(4,Pin.OUT)
while True:
led.on()
print(“LED on!”)
time.sleep(1.0) # Delay for 1 second.
led.off()
print(“LED off!”)
time.sleep(1.0) # Delay for 1 second.
执行:
ampy –port COM3 run led.py
我们看到led在不断闪烁了,但是并没有打印信息,这是什么原因呢?
没打印的原因:By default the run command will wait for the script to finish running on the board before printing its output.
因为代码里是一个while(1)循环,所以一直不会退出,所以也就不会打印了。
针对这种情况,我们可以使用下面的指令:
ampy –port COM3 run –no-output led.py
这样就不会一直停在那里了。同时我们打开PuTTY可以看到在这里一直有打印输出。
4.上电执行代码
通过以下3个步骤就可以实现上电自动执行代码了:
\1) 将led.py改名为main.py
\2) ampy –port COM3 put main.py
\3) 板子重新上电,就可以看到灯不停的闪烁了
如果需要删除掉main.py,只需要执行:
ampy –port COM3 rm main.py
上面的工作机理是,通过ampy把main.py导入到ESP32板子里,上电后会自动执行main.py。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !