有人打算使用STM32U5系列片內LPTIM做低功耗模式喚醒。基于STM32 LL庫組織代碼,折騰幾天后似乎連中斷都進不了,想找找是否有現存LL庫例程可以參考。
我沒有在STM32U5現有固件庫里找到基于LL庫的LPTIM驅動例程。我之前也沒有基于LL庫編寫過針對STM32U5系列的LPTIM驅動代碼。我嘗試著寫了一個演示代碼,還算順利。可以正常工作、可以產生定時器相關中斷。從使用CubeMx工具進行圖形化配置開始,然后添加用戶代碼。我這里將相關操作過程分享出來,供有需要的人參考。
我使用到了LPTIM1的兩路PWM輸出,同時開啟了LPTIM1的更新中斷和通道1的比較中斷。
先做LPTM1的時基參數和PWM輸出配置:
因為要使用更新中斷和比較中斷,在CubeMx里記得做LPTIM1的NVIC相應使能配置。
創建工程后,添加如下基于LL庫的用戶代碼:
進行編譯、調試后即可看到輸出結果,在中斷里打斷點也可以感受到中斷的產生。
后來,我又使用STM32G4開發板,基于LL庫組織了針對LPTIM1的PWM及相關中斷的實現代碼。照樣使用STM32CubeMx進行配置,開啟更新中斷、實現1路PWM輸出。這樣也一并分享出來供參考。
使用LL庫組織代碼,一方面可以讓我們對硬件操作更親近、更直接,另一方面,也可以降低使用者對C語言知識把握度的要求,至于其它方面的考量,比方代碼效率、代碼大小等,恐怕要結合具體應用來評估。或許對于很多人來說,選擇LL庫還是HAL庫主要是看用哪個對自己更方便、更符合自己的喜好等。不過,基于LL庫來組織代碼,就要求我們對硬件原理,寄存器定義、配置時序,有著更清晰、更細節的把握,否則哪怕幾行代碼也可能會被狠狠地折騰一番。對于上面功能,如果使用HAL庫的話,通過CubeMx配置完成后,用戶只需調用一行庫函數調用代碼即可完成,其中要注意的地方,HAL庫代碼大多幫我們考慮到并做好了。
審核編輯:湯梓紅
-
STM32
+關注
關注
2270文章
10914瀏覽量
356712 -
定時器
+關注
關注
23文章
3253瀏覽量
115063 -
代碼
+關注
關注
30文章
4807瀏覽量
68787 -
HAL庫
+關注
關注
1文章
121瀏覽量
6336
原文標題:基于LL庫實現STM32U5 LPTIM 功能的代碼演示
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論