關(guān)于STM32F4定時(shí)器時(shí)鐘頻率問題
從時(shí)鐘樹中我們可以得知
(1)高級(jí)定時(shí)器timer1, timer8以及通用定時(shí)器timer9, timer10, timer11的時(shí)鐘來源是APB2總線
(2)通用定時(shí)器timer2~timer5,通用定時(shí)器timer12~timer14以及基本定時(shí)器timer6,timer7的時(shí)鐘來源是APB1總線
從STM32F4的內(nèi)部時(shí)鐘樹可知,
(1)當(dāng)APB1和APB2分頻數(shù)為1的時(shí)候,TIM1、TIM8~TIM11的時(shí)鐘為APB2的時(shí)鐘,TIM2~TIM7、TIM12~TIM14的時(shí)鐘為APB1的時(shí)鐘;
(2)而如果APB1和APB2分頻數(shù)不為1,那么TIM1、TIM8~TIM11的時(shí)鐘為APB2的時(shí)鐘的兩倍,TIM2~TIM7、TIM12~TIM14的時(shí)鐘為APB1的時(shí)鐘的兩倍。
根據(jù)時(shí)鐘分析,點(diǎn)擊打開鏈接,可知
因?yàn)橄到y(tǒng)初始化SystemInit函數(shù)里初始化APB1總線時(shí)鐘為4分頻即42M,APB2總線時(shí)鐘為2分頻即84M,所以TIM1、TIM8~TIM11的時(shí)鐘為APB2時(shí)鐘的兩倍即168M,TIM2~TIM7、TIM12~TIM14的時(shí)鐘為APB1的時(shí)鐘的兩倍即84M。
知道定時(shí)器的時(shí)鐘源頻率我們用定時(shí)器做延時(shí)就很方便了,只要設(shè)定合適的分頻系數(shù)即可,附一下用中斷實(shí)現(xiàn)延時(shí)的公式:(摘自原子的STM32F4開發(fā)指南)
Tout = ((arr+1)*(psc+1))/Tclk;
公式中psc就是分頻系數(shù),arr就是計(jì)數(shù)值,達(dá)到這個(gè)計(jì)數(shù)就會(huì)發(fā)生溢出中斷,Tclk就是我上述分析的時(shí)鐘源頻率。