STM32F407VG (五)定時器

2022-08-18 12:21:11 字數 1952 閱讀 5871

一、定時器節本分類和主要特點

1.stm32定時器分類:

1)看門狗定時器

2)systick定時器

3)rtc定時器

4)通用定時器

a)通用定時器tim2~tim5,當中tim2和tim5是32位,tim3和tim4是16位

具有四個獨立通道

中斷/dma事件

支援增量編碼器和霍爾感測器

b)通用定時器tim9~tim14,16位定時器

最多具有連個獨立通道

中斷事件

5)基本定時器tim6,tim7,16位定時器

同步電路觸發dac

中斷/dma事件

6)高階定時器tim1。tim8,16位定時器

具有四個獨立通道

中斷/dma事件

支援增量編碼器和霍爾感測器

輸入訊號能夠改變計數器狀態或復位

可改變定期器暫存器的反覆計數器。

二、例項1. 定時中斷

1.時鐘初始化

tim_timebaseinittypedef  tim_timebasestructure;

rcc_apb1periphclockcmd(rcc_apb1periph_tim2 , enable);

tim_deinit(tim2);

/* 時鐘預分頻數 */     

//84000000/84=1000000,預分頻後時鐘為1m

tim_timebasestructure.tim_prescaler= (84 - 1);

/* 自己主動重裝載暫存器週期的值(計數值) */

/* 累計 tim_period個頻率後產生乙個更新或者中斷 */

tim_timebasestructure.tim_period =1000-1 ; 

/* 取樣分頻 */

tim_timebasestructure.tim_clockdivision=tim_ckd_div1;

/* 向上計數模式 */ 

tim_timebasestructure.tim_countermode=tim_countermode_up; 

//呼叫初始化函式 

tim_timebaseinit(tim2, &tim_timebasestructure);

/* 清除溢位中斷標誌 */ 

tim_clearflag(tim2, tim_flag_update);  

/*設定產生tim_flag_update中斷*/        

tim_itconfig(tim2,tim_it_update,enable);

/* 開啟時鐘 */

tim_cmd(tim2, enable); 

2. 設定中斷向量。具體的解釋見本部落格有關「中斷」部分的文章

1)中斷初始化

nvic_inittypedef nvic_initstructure;

/* enable tim2 interrupt irq channel */ 

nvic_prioritygroupconfig(nvic_prioritygroup_2); 

nvic_initstructure.nvic_irqchannel = tim2_irqn;

nvic_initstructure.nvic_irqchannelpreemptionpriority = 1;

nvic_initstructure.nvic_irqchannelsubpriority = 0;

nvic_initstructure.nvic_irqchannelcmd = enable;

nvic_init(&nvic_initstructure);

2)中斷函式

波形非常標準吧:)

stm32f407定時器時鐘頻率的問題

從時鐘樹中我們可以得知 時鐘樹的可以直接參考 ,感謝 xkwy 補上的圖 1 高階定時器timer1,timer8以及通用定時器timer9,timer10,timer11的時鐘 是apb2匯流排 2 通用定時器timer2 timer5,通用定時器timer12 timer14以及基本定時器tim...

STM32F103定時器配置

一 什麼是定時器 定時器,顧名思義,就是用於定時或計數,它其實就是乙個加1計數器。二 了解stm32f103定時器 stm32通用暫存器有tim2 tim3 tim4 tim5。功能包括 1 16位向上 向下 向上 向下自動裝載計數器 timx cnt 2 16位可程式設計預分頻器 timx psc...

STM32F4定時器學習

高階定時器 time1 time8 通用定時器 time2time5,tim9tim14 基本定時器 time6 和 time7 等 tim2 tim5 的暫存器介紹 控制暫存器 1 timx cr1 只用到了 timx cr1 的最低位,也就是計數器使能位,該位必須置 1,才能讓定時器開始計數。d...