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

歡迎訪問 生活随笔!

生活随笔

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

python

stm32与micropython_在NUCLEO_H743上玩MicroPython

發布時間:2025/3/15 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32与micropython_在NUCLEO_H743上玩MicroPython 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨著micropython 1.9.4版本的發布,micropython開始正式支持STM32H7微控制器。STM32H7作為目前STM32 Cotex-M系列控制器中性能最高的系列,micropython在它上面的表現如何呢?和其它型號相比,有什么優勢?下面我們就在NUCELO_H743開發板上,看看MicroPython的表現。

從 1.9.4版開始,micropython在支持的開發板中增加了Nucleo-H743ZI開發板,不過官網上并沒有提供開發板的二進制固件文件,要運行micropython就需要自己編譯源碼。如果安裝過micropyhon編譯環境,那么只要在micropython目錄下,輸入下面命令進行編譯:

make -C ports/stm32 BOARD=NUCLEO_H743ZI

如果沒有安裝編譯環境,可以參考另外一篇文章《在win10的ubuntu子系統下編譯micropython》,按照文中的方法就可以安裝編譯環境。這個方法也可以用于其它虛擬機,或者ubuntu系統。

如果覺得安裝編譯環境太麻煩,或者網速太慢安裝不了,可以直接下載我編譯好的固件,將固件通過板載的STLink下載到芯片,就可以運行了。

在使用前,我們需要準備兩根microUSB數據線(安卓手機的數據線),以及串口終端軟件,如putty、kitty、MobaXterm等。注意不能使用串口助手之類的軟件,因為它們不支持終端模式。

為什么需要兩個數據線呢?因為ST-Link需要使用一個數據線,而開發板上的STM32H743的USB可以接入另外一個USB。寫入固件后,先斷電一次,然后連接ST-Link,再連接另外一邊的用戶USB。如果一切操作步驟正常,這時就會顯示一個pybflash磁盤,我們可以往這個磁盤中寫入文件,運行編寫好的程序。默認情況下,會從main.py文件開始運行,所以我們可以將編寫的程序放入main.py,讓它自動運行。

如果是win10或者macos、Linux系統,無需安裝任何驅動,如果是win7系統,還需要安裝一個串口驅動,驅動程序就在這個PYBFLASH磁盤中。安裝后,我們可以看到有兩個串口,一個是ST-Link的串口,另外一個就是MicroPython的串口了。

運行一個終端軟件,串口可以設置為上面兩個串口中的任何一個,并設置波特率是115200,流量控制選擇None。下面以kitty軟件為例,其它軟件的使用也是類似的:

設置好參數后,點open?按鈕,就可以打開終端了。按下回車鍵,如果出現>>>提示,就代表運行成功了。這時按下ctrl-B鍵,就可以看到版本提示。

按照習慣,我們先從點燈開始。在MicroPython中,默認定義了LED類型,我們可以通過pyb.LED進行控制,如:

pyb.LED(1).on()pyb.LED(1).off()

因為NUCLEO_H743開發板上有3個LED,所以我們也可以使用它們做一個跑馬燈:

while 1: for i in range(1, 4): pyb.LED(i).toggle() pyb.delay(500) pyb.LED(i).toggle() pyb.delay(500)

按鍵的使用也非常容易,MicroPython中有一個內置的Switch類,可以用來讀取按鍵。下面的程序通過按鍵來控制LED1的狀態:

sw=pyb.Switch()sw()while 1: if sw(): pyb.LED(1).on() else: pyb.LED(1).off()

定時器也是我們在編程時最常用的功能之一,下面的程序中,分別在定時器6和定時器7的回調函數中控制LED1和LED3,并使用不同的頻率閃爍。

tm = pyb.Timer(6, freq=2)tm.callback(lambda t: pyb.LED(1).toggle())tm2 = pyb.TImer(7, freq=5)tm2.callback(lambda t: pyb.LED(3).toggle())雖然STM32H743有22個定時器,但是micropython目前只支持到定時器14,超過14的定時器可以定義,但是一旦使用就會死機。

PWM也是很常用的功能,它是通過定時器控制GPIO實現的,是定時器的一種特殊工作模式。下面是在MicroPython中使用PWM的方法,下面程序通過定時器3的CH3控制LED1(PB0),通過周期改變占空比實現了一個呼吸燈。

tm = pyb.TImer(3, freq=1000)pwm = tm.channel(3, mode=pyb.TImer.PWM, pin=pyb.Pin('B0'))pwm.pulse_width_percent(20)while 1: for i in range(100): pwm.pulse_width_percent(i) pyb.delay(20)

STM32H743帶有兩路DAC,分別是PA4和PA5,通過DAC我們可以輸出模擬電壓、產生各種波形。如下面分別使用8位(默認情況)和12位方式控制DAC的輸出:

d1 = pyb.DAC(1)d1.write(100)d1 = pyb.DAC(1, 12)d1.write(3000)

除了直接輸出模擬電壓,也可以輸出不同波形:

三角波

d1.triangle(2048)

白噪聲

d1.noise(1000)

還可以輸出預定義的用戶波形。利用這個特點和STM32H7的高速特性,完全可以將它作為一個簡易的波形發生器。

MicroPython還有很多功能,這里就不一一介紹了,大家可以自己運行一下,體驗MicrPython帶來的方便。

最后,為了測試MicroPython在STM32H743上的性能,我們做了一個計算性能對比測試,在不同的硬件平臺上,進行加法、乘法、除法、圓周率計算,并記錄下計算消耗的時間。通過不同硬件計算時間的對比,就可以直觀的比較性能了(這可能是目前最全面的MicroPython計算性能對比測試,將目前常見的硬件都包括了)。

完整的測試程序

from microbit import running_TImedef pi(places=100): # 3 + 3*(1/24) + 3*(1/24)*(9/80) + 3*(1/24)*(9/80)*(25/168) # The numerators 1, 9, 25, ... are given by (2x + 1) ^ 2 # The denominators 24, 80, 168 are given by (16x^2 -24x + 8) extra = 8 one = 10 ** (places+extra) t, c, n, na, d, da = 3*one, 3*one, 1, 0, 0, 24 while t > 1: n, na, d, da = n+na, na+8, d+da, da+32 t = t * n // d c += t return c // (10 ** extra)def pi_test(n=5000): t1=running_time() t=pi(n) t2=running_time() print('Pi test: ', (t2-t1)/1000, 's')def add_test(n=1000000, a = 1234, b = 5678): t1=running_time() sum = 0 for i in range(n): sum = a + b t2=running_time() print('Add test: ', (t2-t1)/1000, 's')def mul_test(n=1000000, a = 1234, b = 5678): t1=running_time() sum = 0 for i in range(n): sum = a * b t2=running_time() print('Mul test: ', (t2-t1)/1000, 's')def div_test(n=1000000, a = 1234, b = 5678): t1=running_time() sum = 0 for i in range(n): sum = a / b t2=running_time() print('Div test: ', (t2-t1)/1000, 's')print('Speed test starting...')add_test()add_test()mul_test()mul_test()div_test()div_test()pi_test()pi_test()

測試結果

主頻

整數加法

乘法

除法

圓周率

microbit

nRF51822

16M

61.888

74.075

103.935

Nucleo_F091

STM32F091

48M

19.882

25.89

51.78

82.851

PYBNano

STM32F401

84M

6.959

7.222

12.524

18.236

Nucleo_F411

STM32F411

96M

5.858

6.076

10.478

16.467

PYBV10

STM32F405

168M

3.436

3.563

6.067

10.18

STM32L476DISC

STM32L476

80M

8.586

8.989

14.913

18.932

STM32F7DISC

STM32F746

192M

1.946

2.304

3.68

4.579

Nucleo_H743

STM32H743

400M

0.856

0.942

1.534

2.835

ESP8266

ESP8266

80M

15.546

18.302

19.706

41.926

ESP32

ESP32

240M

2.607

2.794

3.839

7.729

ESP32_psRAM

ESP32

240M

3.365

3.553

18.902

15.012

ESP32_LoBo

ESP32

240M

3.396

3.499

13.02

9.607

ESP32_psRAM_LoBo

ESP32

240M

4.228

4.15

18.902

18.757

計算結果的單位是秒

所有固件都更新到最新版本,除了Microbit、ESP32 Lobo外,固件版本都是1.9.4-479。

總結

以上是生活随笔為你收集整理的stm32与micropython_在NUCLEO_H743上玩MicroPython的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 老司机午夜在线 | 黄色三级网络 | 中文字幕在线观看免费高清 | 免费毛片av| 最新国产精品自拍 | 精品一区二区久久久久久按摩 | 欧美视频亚洲视频 | 国产污视频在线看 | 国产一区二区欧美日韩 | 亚洲天堂日本 | 国产性猛交╳xxx乱大交 | 极品国产白皙 | 中文字幕观看在线 | 波多野结衣之双调教hd | 日韩午夜视频在线观看 | 扒下小娇妻的内裤打屁股 | 亚洲va国产天堂va久久 en | 精品一区二区无码 | 男人都懂的网址 | 少妇 av| 成人春色影视 | 亚洲欧美视频在线观看 | 国产欧美日本在线 | 性高潮久久久久久久 | 亚洲欧美在线免费 | 打屁股外国网站 | 日韩六九视频 | 中文字幕第三页 | 国产福利短视频 | 西西久久 | 热热热av | 一级做a爱片久久毛片 | 亚洲精品av中文字幕在线在线 | av一区二区在线播放 | 日韩女优在线 | 久热精品视频在线观看 | 啪啪.com| 抱着老师的嫩臀猛然挺进视频 | 色老头影视 | 男人的天堂免费视频 | 国产又色又爽又高潮免费 | 视色视频在线观看 | 少妇人妻综合久久中文字幕 | 中文视频在线观看 | 五月精品 | 日韩插 | 日韩久久综合 | 四色成人av永久网址 | 制服丝袜先锋 | 黄色xxxx| 婷婷五月综合激情 | 亚洲国产精一区二区三区性色 | 好男人在线视频www 亚洲福利国产 | 大屁股白浆一区二区 | 精品国产精品国产偷麻豆 | 欧美成免费 | 最近最好的2019中文 | 夜夜爱爱 | 成人免费毛片片v | 婷婷6月天 | 中文字幕av片 | julia一区二区三区在线观看 | 国产婷婷一区二区三区 | 浓精喷进老师黑色丝袜在线观看 | 国产精品成人无码 | 一边摸内裤一边吻胸 | 黑人精品无码一区二区三区AV | 8x国产一区二区三区精品推荐 | 免费一级网站 | 色网网站 | 国产黄视频网站 | 欧美a级黄色片 | 中文字幕免费在线观看视频 | 人av在线 | 中文字幕在线看 | 岛国大片在线免费观看 | 波多野吉衣中文字幕 | 欧美黄色大片免费观看 | 99福利视频导航 | 91久久国产精品 | 免费网站观看www在线观看 | 亚洲自拍偷拍av | 国产18p | 国产成人无码av在线播放dvd | 久久亚洲一区二区三区四区五区 | 女女h百合无遮羞羞漫画软件 | 亚洲精品资源 | 亚洲乱码国产乱码精品精剪 | 一区二区三区中文字幕在线观看 | a天堂视频| 日韩福利在线播放 | 久操视频精品 | jizz国产免费 | 午夜粉色视频 | 天天曰天天爽 | 成人h视频在线 | 日韩在线不卡 | 奇米在线777 | 中文字幕在线观看免费 |