MicroPython 玩转硬件系列3:上电自动执行程序

简介: MicroPython 玩转硬件系列3:上电自动执行程序

1.引言

上一篇我们在ESP32上实现了LED灯的闪烁,但是有一个问题,该功能的实现需要我们在串口终端里去手动执行代码,是否可以让ESP32上电后自动执行代码呢?当然是可以的,本篇文章介绍如何实现该功能。                    

2.ampy安装

ampy是什么,大家直接看下方的官方介绍即可,https://github.com/scientifichackers/ampy     Adafruit MicroPython Tool (ampy) - Utility to interact with a CircuitPython or MicroPython board over a serial connection.Ampy is meant to be a simple command line tool to manipulate files and run code on a CircuitPython or MicroPython board over its serial connection. With ampy you can send files from your computer to the board's file system, download files from a board to your computer, and even send a Python script to a board to be executed.安装方式: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.py2) ampy --port COM3 put main.py3) 板子重新上电,就可以看到灯不停的闪烁了如果需要删除掉main.py,只需要执行:ampy --port COM3 rm main.py上面的工作机理是,通过ampy把main.py导入到ESP32板子里,上电后会自动执行main.py。

5.参考资料

https://www.digikey.com/en/maker/projects/micropython-basics-load-files-run-code/fb1fcedaf11e4547943abfdd8ad825cehttp://www.cirmall.com/bbs/thread-102620-1-1.html如果你喜欢这篇文章就点击在看或者分享给你的朋友吧!

相关文章
|
4月前
|
存储 芯片 SoC
|
4月前
|
Linux Shell 数据安全/隐私保护
嵌入式Linux系统小技巧之U盘自动运行脚本
嵌入式Linux系统小技巧之U盘自动运行脚本
171 1
|
9月前
|
供应链 芯片
一种LED驱动专用控制电路
一、基本概述 TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存 器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能热 水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED显示设备。 二、基本的特性说明 采用CMOS工艺 显示模式(8 段×6 位~10段×4位) 辉度调节电路(8 级占空比可调) 串行接口(CLK,STB,DIN) 振荡方式:内置RC振荡 内置上电复位电路 内置数据锁存电路 内置针对LED反偏漏电导致暗亮问题优化电路 抗干扰能力强 封装形式:S
77 5
MicroPython 玩转硬件系列4:串口小实验
MicroPython 玩转硬件系列4:串口小实验
|
开发工具 内存技术
zynq程序固化补充篇: 不切换启动模式强制烧写
使用SDK2018.2第一次进行烧写 Flash,在qspi模式下会报错,只有切换至jtag模式下才可以进行烧录,后续的再次烧录不会出现类似问题。但是调试的时候必须切回jtag模式(将BOOT MODE 5拉低才可以调试)
1918 1
zynq程序固化补充篇: 不切换启动模式强制烧写
|
存储 安全 存储控制器
ZYNQ裸板:中断篇
中断对于单片机过来的我们来说,相对也算比较熟悉了,还是严谨一点从头开始说吧。中断是什么?是一种当满足要求的突发事件发生时通知处理器进行处理的信号。中断可以由硬件处理单元和外部设备产生,也可以由软件本身产生。对硬件来说,中断信号是一个由某个处理单元产生的异步信号,用来引起处理器的注意。对软件来说,中断还是一种异步事件,用来通知处理器需要改变代码的执行,当然,轮询所产生的中断的过程是同步的。
774 0
ZYNQ裸板:中断篇
|
Linux Android开发
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
156 0
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
343 1
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
|
存储 安全 开发工具
ZYNQ裸板:程序固化篇
一般的调试中我们都是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。同样的,我们也可以将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序( Boot Loader) 的参与
386 0
ZYNQ裸板:程序固化篇
|
存储 缓存 网络协议
ZYNQ裸板:AXIDMA篇(简单模式)
DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器( CPU)介入处理。 DMA 是一种快速的数据传送方式, 通常用来传送数据量较多的数据块
1105 0
ZYNQ裸板:AXIDMA篇(简单模式)