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 Pinhtml

import timepython

 

led=Pin(4,Pin.OUT)git

 

while True:github

    led.on()微信

    print("LED on!")app

    time.sleep(1.0)  # Delay for 1 second.工具

    led.off()ui

    print("LED off!")spa

    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。
5.參考資料
https://www.digikey.com/en/maker/projects/micropython-basics-load-files-run-code/fb1fcedaf11e4547943abfdd8ad825ce
http://www.cirmall.com/bbs/thread-102620-1-1.html
若是你喜歡這篇文章就點擊 在看 或者 分享 給你的朋友吧!
掃碼關注公衆號:

加入微信交流羣:.net

本文分享自微信公衆號 - TopSemic嵌入式(TopSemic)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索