1)tim3 時鐘使能 。
rcc_apb1periphclockcmd(rcc_apb1periph_timx, enable); //時鐘使能
2) 初始化定時器引數,設定自動重灌值, 分頻係數,計數方式等。
定時器的初始化函式tim_timebaseinit
voidtim_timebaseinit(tim_typedef*timx,
tim_timebaseinittypedef* tim_timebaseinitstruct); //前面指是哪個tim,後面指timebaseinitstruct結構體指標。
tim_timebaseinittypedef tim_timebasestructure; //定義tim初始化型別結構體變數
tim_timebasestructure.tim_period = 5000; //設定自動過載計數週期值
tim_timebasestructure.tim_prescaler =7199; //設定分頻係數
tim_timebasestructure.tim_clockdivision = tim_ckd_div1; //設定時鐘分頻因子
tim_timebasestructure.tim_countermode = tim_countermode_up; //設定為向上計數方式
tim_timebaseinit(timx, &tim_timebasestructure); //初始化時鐘timx
3) 設定 tim3_dier 允許更新中斷 。
void tim_itconfig(tim_typedef* timx, uint16_t tim_it, functionalstate newstate);
第乙個引數是選擇定時器號,這個容易理解,取值為 tim1~tim17。
第二個引數非常關鍵,是用來指明我們使能的定時器中斷的型別,定時器中斷的型別有很
多種,包括更新中斷 tim_it_update,觸發中斷 tim_it_trigger,以及輸入捕獲中斷等等。
第三個引數就很簡單了, 就是失能還是使能 。
4) tim3 中斷優先順序設定。
nvic_initstructure.nvic_irqchannel = tim3_irqn; //tim3 中斷
nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; //先佔優先順序 0 級
nvic_initstructure.nvic_irqchannelsubpriority = 3; //從優先順序 3 級
nvic_initstructure.nvic_irqchannelcmd = enable; //irq 通道被使能
nvic_init(&nvic_initstructure); //④初始化 nvic 暫存器
tim_cmd(tim3, enable); //⑤使能 tim3
5) 允許 timx工作,也就是使能 timx。
void tim_cmd(tim_typedef* timx, functionalstate newstate) ;
6) 編寫中斷服務函式。
在韌體庫函式裡面, 用來讀取中斷狀態暫存器的值判斷中斷型別的函式是:
itstatus tim_getitstatus(tim_typedef* timx, uint16_t) ;
韌體庫中清除中斷標誌位的函式是:
void tim_clearitpendingbit(tim_typedef* timx, uint16_t tim_it) ;
例如:我們判斷定時器3是否發生更新(溢位)中斷,並清除中斷標誌位。
if (tim_getitstatus(tim3, tim_it_update) != reset)
}
stm32關定時器 STM32定時器TIM3程式
include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...
STM32定時器(TIM)之通用定時器
stm32的通用定時器有四個,分別是tim2,tim3,tim4,tim5,有以下功能 通用定時器的框圖如下 從圖中可以看出,通用定時器timx的觸發源 計數器時鐘的時鐘源 有四個 1 內部時鐘 clk int 2 外部時鐘模式1 外部輸入引腳 tix 分別經timx chx通道傳入 3 外部時鐘模...
STM32 定時器 TIM 定時如何計算?
stm32定時器定時計算通過計數溢位計算,也就是說計數溢位就觸發中斷 計算公式 timeout prescaler 1 period 1 timeclockfren 解釋下公式引數意義 timeout 定時器溢位時間 單位為us 多少觸發 進入 一次tim中斷。prescaler 分頻tim時鐘的預...