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

STM32U5帶OEM Key保護的RDP降級

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

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

評論