STM32 进阶教程 2 - micropython 使用
?
前言
Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。
Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。具有如下特點:
1.易于學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
2.易于閱讀:Python代碼定義的更清晰。
3.易于維護:Python的成功在于它的源代碼是相當容易維護的。
4.一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。
5.互動模式:互動模式的支持,您可以從終端輸入執行代碼并獲得結果的語言,互動的測試和調試代碼片斷。
6.可移植:基于其開放源代碼的特性,Python已經被移植(也就是使其工作)到許多平臺。
7.可擴展:如果你需要一段運行很快的關鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調用。
8.數據庫:Python提供所有主要的商業數據庫的接口。
9.GUI編程:Python支持GUI可以創建和移植到許多系統調用。
10.可嵌入:?你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。
MicroPython 是Python 3編程語言的一種精簡而高效的實現,它包含Python標準庫的一個小子集,并且經過優化,可以在微控制器和受限環境中運行。MicroPython包含了許多高級特性,比如交互式提示符、任意精確整數、閉包、列表理解、生成器、異常處理等等。但是它足夠緊湊,可以在256k的代碼空間和16k的RAM中運行。MicroPython的目標是盡可能與普通Python兼容,允許您輕松地將代碼從桌面轉移到微控制器或嵌入式系統。
本節將帶領大家在STM32F407ZET6開發板上移植micropython,讓python的優點進入到單片機,進入到嵌入式程序開發層次!
?
示例詳解
基于硬件平臺: 正點原子的stm32f4 探索者開發板,MCU 的型號是?STM32F4ZET6, 首先筆者使用的實驗環境為WIN10+Ubuntu14.04(虛擬機,安裝了python2.7 )。所用到的工具有JFLAH, PUTTY, ST_DFU工具(非必需)。
ST_DFU 工具下載:http://www.stmcu.org.cn/document/detail/index/id-215019
Putty工具下載:https://www.putty.org/
Jflasha工具下載(配合JLINK使用): https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack
?
本示例所用的開發板及部分原理圖:
?
?
LED控制問題,在putty窗口給開發板發命令,發現命令執行成功,但LED無動作:
原因很簡單,可能是先前編譯的micropython固件對LED引腳的定義與我們的開發板不符,這里我們直接用Pin腳控制方式來控制一下看看效果:
這次直接說PF9沒有定義,好吧,先這樣,我們看看串口1功能:
出現串口1不存在錯誤,接著試一下發現串口2,3,6,可用,1,4,5不可用:
?
其中mpconfigboard.h是板子接口配置文件,用vi工具或gedit工具打開它,將對應位置代碼按下圖所示進行修改:
打開mpconfigboard.mk 發現會用到boards/stm32f405_af.csv和boards/stm32f405.ld 以及boards/common_ifs.ld三個文件:
最后打開pins.csv文件,在文件末尾加入PF9,PF10引腳的定義:
完成以上修改之后,CTRL+ALT+T 打開終端,輸入命令:
cd micropython/ports/stm32/
make BOARD=MYBOARD PYTHON=python2
重新編譯工程,并將編譯成功后的firmware.hex復制到win10環境下,按上一講的步驟將新固件燒錄到開發板中。
?
c) 再次驗證,打開PUTTY,連接上開發板:
依次執行命令,發現無論是通過Pin腳還是通過LED都可控制LED的亮和滅了,第一講中出現的各種報錯也沒有了:
串口一的使用也是可以用了,通過python命令成功控制串口1輸出數據:
?
?
本次的基于micropython的移植教程就完成了,關于micropython的更多介紹與教程可以去:http://docs.micropython.org/en/latest/pyboard/quickref.html#timers,有興趣的同學或有實際應用案例的同學可以好好研究與利用一下。
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!
文中源碼資料下載,在公眾號里給十三發消息:
下載|STM32進階教程2
?
關注十三公眾號
?
總結
以上是生活随笔為你收集整理的STM32 进阶教程 2 - micropython 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 进阶教程 1 - micro
- 下一篇: 【Python】垃圾分类,调用阿里云AP