前言:
ST官方?jīng)]有給STM32L0系列配標(biāo)準(zhǔn)庫,但是有HAL庫。為了移植方便,也是為了順應(yīng)潮流吧,使用HAL庫開擼。個人水平有限,如有錯誤,還請指正mr.li.ming@qq.com。
提示:1.使用的外部16M晶振,最大速度32MHz.
2.使用的CubeMX版本V4.20.1,使用L0的驅(qū)動庫版本1.9.0.
第一步:使用CubeMX生成初始化代碼
先打開CubeMX選擇STM32L053C8T6
為了測試方便,使用內(nèi)部晶振。點擊Clock Configuration如下圖配置
然后拐回來我們設(shè)置一下TIM2, 如圖選擇內(nèi)部時鐘
同時我們做個輸出檢測腳,因為我的電路板上PC13接一個藍(lán)色LED,所以做個下圖的配置。
下面配置定時器
點擊OK, Internal Clock Division(CKD) 這里選No Division(選哪個都無所謂)其實仔細(xì)看過技術(shù)手冊后發(fā)現(xiàn)這項配置跟定時器是沒關(guān)系的,這句話是設(shè)置定時器時鐘(CK_INT)頻率與數(shù)字濾波器(ETR,TIx)使用的采樣頻率之間的分頻比例的(與輸入捕獲相關(guān)),0表示濾波器的頻率和定時器的頻率是一樣的。
然后配置定時器的更新中斷
把中斷使能復(fù)選框選中,優(yōu)先級按需選擇,我選擇1點擊OK
生成工程的配置
選擇打開工程進(jìn)入下一步操作
第二步:Keil中需要的操作
打開main.c在這個位置添加啟動TIM2的代碼,強(qiáng)調(diào)一下位置是 /* USER CODE BEGIN 2 */
/* USER CODE END 2 */ 這兩行注釋中間,CubeMX再次生成代碼的時候不會刪除用戶代碼。
這里我們找到了HAL庫里中斷處理回調(diào)函數(shù)的弱定義,去掉前面的__weak,復(fù)制到main.c
加上藍(lán)色LED狀態(tài)反轉(zhuǎn)代碼。
編譯0 Error(s),0 Warning(s)
下載,重啟電路板,現(xiàn)象是藍(lán)燈亮了測一下藍(lán)燈的控制腳信號,即PC13
頻率484Hz的脈沖信號,理論上我們32 000 000經(jīng)過32分頻是1000 000,周期為1000,應(yīng)該是每1ms翻轉(zhuǎn)一次,由于誤差,所以大概1.040ms翻轉(zhuǎn)一次;痉弦,如果需要更精確可以適當(dāng)調(diào)整。
希望對各位看官有所幫助,并能觸類旁通。 使用HAL庫的勢在必行,多多進(jìn)行嘗試。
完整的pdf格式文檔51黑下載地址:
STM32L053用HAL庫TIM.pdf
(2.08 MB, 下載次數(shù): 61)
2019-7-19 17:43 上傳
點擊文件名下載附件
|