STM32F4定時器初始化的含義

2021-09-06 16:31:20 字數 1078 閱讀 8833

最近在弄stm32乙太網的時候,看到定時器的中斷,發現忘記了一些定時器的內容。

比如stm32f4的初始化定時器,tim3_int_init(5000-1,8400-1);這一句就沒有理解了,這個是多久進入一次的定時器中斷呢? 趕緊去翻了一下我之前stm32定時器的網頁收藏夾。寫下這篇文章記錄一下。

先說結論, tim3_int_init(5000-1,8400-1)這一句是0.5s進入一次的中斷。正點原子的中斷**,8400是分頻係數,5000是預裝載值。我們使用的是tim3.根據時鐘樹,可以知道tim3掛載在apb1下,apb1的時鐘頻率是=42mhz,但是因為我們分頻係數不等於1,所以tim3的時鐘為apb1的頻率*2=84mhz。

計算: 

tim3的時鐘84/8400=0.01m, 

乙個時鐘週期為1_000_000/10_000=100us 

因為裝載值是為5000,所以最後溢位的時間100us*5000=500_000us=0.5s 

最後可得這個程式0.5s進入一次定時器中斷。

apb1,apb2時鐘的時鐘可參考文章 

stm32f4如何設定系統時鐘

得stm32f4的時鐘 

hclk = sysclk / 1 = 168mhz ,ahb匯流排時鐘 

pclk2 = hclk / 2 = 84mhz 

pclk1 = hclk / 4 = 42mhz

關於stm32f4定時器時鐘頻率問題

(1)當apb1和apb2分頻數為1的時候,tim1、tim8~tim11的時鐘為apb2的時鐘,tim2~tim7、tim12~tim14的時鐘為apb1的時鐘; 

(2)而如果apb1和apb2分頻數不為1,那麼tim1、tim8~tim11的時鐘為apb2的時鐘的兩倍,tim2~tim7、tim12~tim14的時鐘為apb1的時鐘的兩倍。

STM32F4定時器學習

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

stm32F4 時基定時器(2)

找了很多的資料,終於把時基定時器的給弄懂了,沒有使用庫函式,直接操作暫存器。下面介紹stm32中的systick,systick 部分內容屬於nvic控制部分,一共有4個暫存器,名稱和位址分別是 stk csr,0xe000e010 控制暫存器 stk load,0xe000e014 過載暫存器 s...

STM32F4暫存器初始化 PWM輸出

static void tim4 init void 普通定時函式 static void tim8 init void 普通定時函式 rcc apb1enr 1 0 tim2時鐘使能 rcc apb1enr 1 1 tim3時鐘使能 rcc apb1enr 1 2 tim4時鐘使能 rcc apb...