stm32一个定时器可以输出两路不同频率_STM32定时器(TIM)之预分频器(PSC)详解...

在STM32的定时器中,预分频器(Prescaler-PSC)用来将定时器时钟源进行分频输出。
预分频器的值由寄存器TIMx_PSC设定,是一个16位正整数值。

stm32一个定时器可以输出两路不同频率_STM32定时器(TIM)之预分频器(PSC)详解..._第1张图片
STM32CubeMX中的TIM预分频设置


在STM32系统中,定时器的时钟源为内部时钟时,其频率一般都比较高,以STM32F103的TIM1为例,其总线时钟最大为72MHz,体现在16位的定时器上的效果就是从0计数到65535上溢只需要0.9毫秒。如果我们需要更长时间的定时间隔,那么就需要预分频器对时钟进行分频处理,以降低定时器时钟(CK_CNT)的频率。
除此之外,也可以通过配置预分频器,来获取想要的定时器时钟频率。依然以上边的TIM1为例,如果我们想获取一个精确的1ms中断,如果不分频,72MHz的时钟对应每周期1/72us,十分不利于计算。这时候使用预分频器将其72分频后为1MHz,每周期1us,1000个计时周期即为1ms,这样既便于计算,定时也更加精确。
预分频器的工作的工作原理是,定时器时钟源每tick一次,预分频器计数器值+1,直到达到预分频器的设定值,然后再tick一次后计数器归零,同时,CNT计数器值+1。
由此可以看出,因为达

你可能感兴趣的:(stm32一个定时器可以输出两路不同频率_STM32定时器(TIM)之预分频器(PSC)详解...)