STM32 定时器【TIM】 定时如何计算?

Stm32定时器定时计算通过计数溢出计算,也就是说计数溢出就触发中断
计算公式:

TimeOut = ((Prescaler + 1) * (Period + 1) ) / TimeClockFren;

解释下公式参数意义:
TimeOut:定时器溢出时间(单位为us),多少触发(进入)一次TIM中断。
Prescaler:分频TIM时钟的预分频器值。
Period:计数重载值,TIM计数当超过这个值,则重新计数。
TimeClockFren:定时器的输入时钟频率(单位MHZ),也就是当前使用的TIM所用的CLOK的时钟频率。如果不清楚,可通过相关参数得到。

eg:

    TIM2_InitStruct.Instance = TIM2;
    TIM2_InitStruct.Init.Prescaler = 1999;   
    TIM2_InitStruct.Init.Period = 999;
	......

如上所示,上述代码在TimeClockFren为2.09Mhz的频率下,则定时器溢出的时间为
TimeOut = ((1999 + 1) * (999 + 1) ) / 2;
TimeOut = 1000000us = 1s。
因此,定时器则1s触发一次中断。

你可能感兴趣的:(stm32)