定时器的定时周期可以通过分频比(PSC)和自动重装载值(ARR)来设置
定时周期的计算过程,在芯片手册中
APB2总线上有TIM1,TIM8,TIM9,TIM10,TIM11,在分频前APB2的时钟源频率为84MHz
定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器。
在Cube时钟树的设置上,最右端是APB1和APB2总线的时钟频率设置(APB2的传输速度大于APB1),其中的APB1 peripheral clocks/APB2 peripheral clocks为挂载在总线上的定时器以外的外设提供时钟源;APB1 timer clocks/APB2 timer clocks为挂载在总线上的定时器提供时钟源
在使用定时器时涉及三个重要概念:1. 分频 2. 计数 3. 重载
-
分频:
将时钟源的频率分配给不同的外设
-
计数:
即定时器会进行计数
-
重载:
当定时器计数值达到一定程度后就会清空并重新从0开始计数
同时有3个与定时器相关的寄存器:
- TIMx_PSC(预分频寄存器)
- TIMx_CNT(计数器寄存器)
- TIMx_ARR(自动重装载寄存器)
首先时钟源处的时钟信号经过PSC分频,分频过后的定时器时钟会驱使CNT向上计数,直到CNT的值增加到与ARR中的值一致时,就会启动自动重载,将CNT中的值清零,并产生一个定时器中断,这样该定时器就可以持续定时产生中断了,因此我们可以看到定时器触发中断的时间(固定频率)是由PSC以及ARR决定的。
对定时器周期公式的理解:
T=(arr+1)(PSC+1)/Tck 其中TCK为时钟频率,PSC为时钟预分频系数,arr为自动重装载值。
f=Tck/(psc+1)(arr+1)
Tck/(psc+1)即为时钟频率,1/f为机器周期,乘以(arr+1)即可得出定时器周期。
例子:TCK=72MHZ,psc=71.时钟周期=1us.(arr+1)值为多少,定时器周期就为多少毫秒。