如何在MicroPython TPYBoard 添加自定義類庫


開始之前,首先要感謝一下TPYBoard技術交流群(157816561)-雲之初曉網友的分享。
 
今天簡單分享下如何將自己編寫的一些Python腳本的類庫添加到固件中,在使用時只需import調用,就像使用內置的pyb一樣簡單便捷;同時還有另外一個重要的功能,就是可以很好的保護源代碼。比起生成mpy加密文件這種方式來說,顯然添加到固件中會更加安全可靠。
 
 
搭建micropython編譯環境
 
1.安裝arm-none-eabi-gcc交叉編譯工具和gcc編譯器。
sudo apt-get install gcc-arm-none-eabi
sudo apt-get install gcc
 
 
2.下載micropython源碼包到本地,我下載到了home目錄下。
sudo git clone --recursive https://github/micropython/micropython
MicroPython的源碼結構

 

docs/         micropython的說明文檔(restructuredText)
drivers/          一些外接設備的實現例程(eg:ds18b20,nrf24l01)
examples/ micropython的使用例程
extmod/         C語言實現的模塊
lib/                 各類芯片的lib文件
mpy-cross/ 自帶的交叉編譯器,可以將.py生成.mpy加密文件
ports/         移植到各類MCU上的源碼(eg:stm32,esp8266)
tests/         測試框架和Python腳本
tool+9s/         工具
進入ports目錄下你會發現,micropython根據不同的MCU運行平台進行了分類,比如esp8266就是運行在esp8266-WIFI模塊上的micropython,stm32是運行在stm32上的,還有cc3200 。
然后進入stm32/boards目錄下,里面又根據stm32不同的系列進行了划分。
 
添加自定義Py類庫
 
3.回到stm32/目錄下,將需要添加到固件中的Python腳本類庫放到modules/目錄下。編譯之前,請確保程序運行無誤。為了測試新建了一個test.py文件,簡單寫了兩個函數。如下:
 
import pyb

def on():
pyb.LED(4).on()
def off():
pyb.LED(4).off()
 
4.執行編譯命令,等待編譯完成。
 
sudo make BOARD=PYBV10
 
BOARD參數為stm32/boards/目錄下相應的開發板名稱。
本次教程用的是TPYBoardv102(藍色)開發板,兼容PYBV10,所以選擇PYBV10開發板編譯。
若是TPYBoardv102(綠色)基礎板,同樣選擇PYBV10。
若是TPYBoardv102(黑色)開發板,需選擇PYBV11。
 
生成的固件在stm32/build-PYBV10/目錄下的firmware.dfu和firmware.hex文件。
 
5.將dfu和hex文件拷貝到本地,進行燒寫。
 
dfu文件的燒寫教程,請參考:http//.tpyboard.com/support/reference11/302.html
 
 
hex文件的燒寫需要借助ST-LINK工具,請參考:http//.tpyboard.com/support/reference11/239.html
 
6.燒寫完畢后進行測試,在main.py文件輸入以下內容:
import pyb
import test
test.on()
pyb.delay(1500)
test.off()
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM