STM32的TIM中Prescaler和ClockDivision有什么用以及计数器溢出时间计算
我们在stm32中需要使用到时钟,在设置时容易把Prescaler和ClockDivision混淆,为什么有时候ClockDivision不需要设置呢?PrescalerPrescalerPrescalerPrescaler可以进一步降低计数频率。
·
我们在stm32中需要使用到时钟,在设置时容易把Prescaler和ClockDivision混淆,为什么有时候ClockDivision不需要设置呢?一下是解释:


1. Prescaler(预分频器)
-
功能:
Prescaler的作用是降低定时器的输入时钟频率。通过设置Prescaler,可以使定时器的计数频率降低。其计算方式是通过将系统时钟频率除以(Prescaler + 1)来确定定时器的计数频率。 -
使用示例:例如,如果系统时钟为 72 MHz,您将
Prescaler设置为 71,则定时器的计数频率为 72 MHz / (71 + 1) = 1 MHz。这意味着定时器每秒将计数 1,000,000 次。
2. ClockDivision(时钟分频)
-
功能:
ClockDivision主要用于选择计数器的时钟源的分频值。虽然它也会影响计数频率,但其分频处理是在Prescaler之后的操作。选择ClockDivision选项可以进一步降低计数频率(例如,将其降低到系统时钟频率的一半或四分之一),但通常在不需要的情况下不会影响主要应用。 -
值的选择:
-
TIM_CLOCKDIVISION_DIV1:不分频(默认为全速) -
TIM_CLOCKDIVISION_DIV2:将时钟频率降低为一半 -
TIM_CLOCKDIVISION_DIV4:将时钟频率降低为四分之一
-
最后,假如你要计算出每一个计数器溢出时间,在ClockDivision为零(我们一般不需要设置这个,因为是在Prescaler上的进一步分频)的情况下,公式为:

Period:计数器计满一个周期所需的计数值。
Prescaler:上面有讲过了。
Ft:时钟周期频率。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)