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

UM2986 STM32U5系列IEC 60730自測(cè)試庫(kù)用戶指南

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)論