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