定时器(Timer)是微控制器中经常使用的一种常见外设,它可以提供计时、计数和产生脉冲等功能。
在STM32系列微控制器中,定时器具有多种工作方式和计数模式,能够满足不同的应用需求。其中,定时器中的时钟选择和分频是定时器工作的重要参数之一。
在STM32的定时器模块中,定时器的时钟源来自内部时钟源或外部时钟源。分频则是将定时器时钟源分成更小的单位,使得计时更精确或计数更准确。
其中,定时器的时钟源也称作TIMxCLK,可以选择从APBx总线时钟或者外部时钟源进行选择,其中APBx时钟是STM32内部主频的分频之一。
定时器分频的作用在于,将时钟源分成更小的单位,从而实现更细精度的计时或计数。例如,如果定时器的时钟源是72MHz,如果分频系数为36,则定时器每计数36次才会加1,相当于减小了时钟源的频率,从而实现更精确的计时。
此外,分频还可以有效减小计数的次数,从而减小计数器溢出的事件,提高定时器的工作效率和可靠性。
例如,如果要实现1秒钟触发一次中断,可以选择定时器的时钟源为72MHz,并设置分频系数为72000,则定时器每计数72000次才会产生一次中断,也就是每秒产生1次中断。
如果不进行分频,则需要计数72000000次才能产生1秒钟的定时,这将会浪费很多资源和能耗。