日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

STM32 进阶教程 2 - micropython 使用

發布時間:2025/4/5 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

?

本示例所用的開發板及部分原理圖:

?

  • 在上一講中我們成功完成了micropython的移植工作,但是在使用后發現通過pyb.LED(1).on() 命令控制不了板子上的LED。通過UART(1).write(‘hello’) 也無法操作串口,還報錯。這些問題要怎么解決了,本節將以我手中的這個開發板主例帶領大家一一解決上面問題。
  • ?

    LED控制問題,在putty窗口給開發板發命令,發現命令執行成功,但LED無動作:

    原因很簡單,可能是先前編譯的micropython固件對LED引腳的定義與我們的開發板不符,這里我們直接用Pin腳控制方式來控制一下看看效果:

    這次直接說PF9沒有定義,好吧,先這樣,我們看看串口1功能:

    出現串口1不存在錯誤,接著試一下發現串口2,3,6,可用,1,4,5不可用:

    ?

  • 針對上面的問題,現在我們來逐個解決,首先是LED控制無效問題,我們到mircopython/ports/stm32/boards/MYBOARD文件夾下看到有如下幾個文件:
  • 其中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 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。