有人打算使用STM32U5系列片內(nèi)LPTIM做低功耗模式喚醒。基于STM32 LL庫組織代碼,折騰幾天后似乎連中斷都進(jìn)不了,想找找是否有現(xiàn)存LL庫例程可以參考。
我沒有在STM32U5現(xiàn)有固件庫里找到基于LL庫的LPTIM驅(qū)動(dòng)例程。我之前也沒有基于LL庫編寫過針對STM32U5系列的LPTIM驅(qū)動(dòng)代碼。我嘗試著寫了一個(gè)演示代碼,還算順利。可以正常工作、可以產(chǎn)生定時(shí)器相關(guān)中斷。從使用CubeMx工具進(jìn)行圖形化配置開始,然后添加用戶代碼。我這里將相關(guān)操作過程分享出來,供有需要的人參考。
我使用到了LPTIM1的兩路PWM輸出,同時(shí)開啟了LPTIM1的更新中斷和通道1的比較中斷。
先做LPTM1的時(shí)基參數(shù)和PWM輸出配置:
因?yàn)橐褂酶轮袛嗪捅容^中斷,在CubeMx里記得做LPTIM1的NVIC相應(yīng)使能配置。
創(chuàng)建工程后,添加如下基于LL庫的用戶代碼:
進(jìn)行編譯、調(diào)試后即可看到輸出結(jié)果,在中斷里打斷點(diǎn)也可以感受到中斷的產(chǎn)生。
后來,我又使用STM32G4開發(fā)板,基于LL庫組織了針對LPTIM1的PWM及相關(guān)中斷的實(shí)現(xiàn)代碼。照樣使用STM32CubeMx進(jìn)行配置,開啟更新中斷、實(shí)現(xiàn)1路PWM輸出。這樣也一并分享出來供參考。
使用LL庫組織代碼,一方面可以讓我們對硬件操作更親近、更直接,另一方面,也可以降低使用者對C語言知識(shí)把握度的要求,至于其它方面的考量,比方代碼效率、代碼大小等,恐怕要結(jié)合具體應(yīng)用來評(píng)估。或許對于很多人來說,選擇LL庫還是HAL庫主要是看用哪個(gè)對自己更方便、更符合自己的喜好等。不過,基于LL庫來組織代碼,就要求我們對硬件原理,寄存器定義、配置時(shí)序,有著更清晰、更細(xì)節(jié)的把握,否則哪怕幾行代碼也可能會(huì)被狠狠地折騰一番。對于上面功能,如果使用HAL庫的話,通過CubeMx配置完成后,用戶只需調(diào)用一行庫函數(shù)調(diào)用代碼即可完成,其中要注意的地方,HAL庫代碼大多幫我們考慮到并做好了。
審核編輯:湯梓紅
-
STM32
+關(guān)注
關(guān)注
2282文章
10981瀏覽量
360907 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3271瀏覽量
116508 -
代碼
+關(guān)注
關(guān)注
30文章
4874瀏覽量
69928 -
HAL庫
+關(guān)注
關(guān)注
1文章
121瀏覽量
6617
原文標(biāo)題:基于LL庫實(shí)現(xiàn)STM32U5 LPTIM 功能的代碼演示
文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
STM32U5 LPTIM無法退出STOP2模式有什么建議嗎
IAR9.10.2才有STM32U5

STM32U5系列物聯(lián)網(wǎng)節(jié)點(diǎn)探索套件

STM32U5帶OEM Key保護(hù)的RDP降級(jí)

STM32U5系列使用LPBAM進(jìn)行功耗優(yōu)化

STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的火災(zāi)報(bào)警系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

評(píng)論