STM32定时器(TIM)之预分频器(PSC)详解
在STM在32定时器中,预分频器(Prescaler-PSC)分频输出定时器时钟源。寄存器预分频器的值TIMx_PSC设置,是16位正整值。
STM32CubeMX中的TIM预分频设置
在STM在32系统中,定时器的时钟源是内部时钟,其频率一般较高STM32F103的TIM例如,其总线时钟最大为72MHz,16位定时器的效果是从0计数到6535上溢只需0.9毫秒。如果我们需要更长的时间间隔,我们需要预分频器来分频时钟,以减少定时器时钟(CK_CNT)的频率。此外,还可以通过配置预分频器获得所需的定时器时钟频率。还在上面TIM例如,如果我们想得到一个精确的1ms中断,如果不分频,72MHz每个周期的1/72us,非常不利于计算。此时,使用预分频器对其进行72分频MHz,每周期1us,1000个计时周期ms,这样既方便计算,又更准确。预分频器的工作原理是定时器时钟源tick预分频器计数器值一次 1.直到达到预分频器的设定值,然后tick同时,一次后计数器归零,CNT计数器值 1。由此可见,达到最大值后还要再看tick一次归零,所以定时器时钟的频率应该是Fosc/(PSC 1)。其中Fosc是定时器的时钟源。例如,如果要对时钟源进行72分频,则预分频器的值应设置为71。预分频器值寄存器TIMx_PSC有影子寄存器(官方翻译为缓冲功能),因此在定时器启动后更改TIMx_PSC值不会立即影响当前定时器的时钟频率。等到下一个更新(UEV)只有在发生时才会生效。例如,下图显示了将分频系数从1修改为2(即TIMx_PSC整个定时器的时序图由0改为1)。
定时器时间图
更新事件(UEV)则由TIMx_CR1寄存器中的UDIS启用时,位置控制将通过以下两种方式触发:
?计数器上溢
?手动将 TIMx_
小编在小组文件中整理了一些个人认为比较好的学习书籍和视频资料。如果有必要,你可以给我发私人信息