admin管理员组

文章数量:1595877

概念 

TIM_TimeBaseStructure.TIM_Period 和 TIM_TimeBaseStructure.TIM_Prescaler 是STM32定时器(Timer)的两个重要参数。

  1. TIM_Period:这个参数代表的是定时器的自动重装载值(Auto-reload value)。当定时器的计数值达到这个值时,定时器就会产生一个中断或更新事件。这个参数可以用来控制定时器中断的间隔时间。

        例如,如果设置TIM_Period为7199,那么定时器每计数7199次就会产生一个中断。

  1. TIM_Prescaler:这个参数代表的是定时器的预分频值(Prescaler value)。它决定了定时器的时钟频率被分频的倍数。这可以用来控制定时器的分辨率和计数速度。通过调整TIM_Prescaler的值,可以实现对定时器行为的精细控制。

        例如,如果设置TIM_Prescaler为9,那么定时器的时钟频率将被除以9,从而降低定时器的计数速度。

这两个参数共同决定了定时器的中断间隔时间。在STM32的TIM2中,可以通过设置这两个参数来实现在特定的时间间隔产生中断的功能。

举例:

//对于72MHZ的频率,2s中断一次:
TIM_Prescaler=7200-1;   //预分频值
TIM_Period=20000-1;    //重装载值
//72M  / 7200 = 72* 10 ^ 6 / 7200= 72000000/7200=10000Hz
//周期等于频率的倒数  1/10000 = 0.0001s
//2s = 2000ms 2s/0.0001s = 20000
//要运行20000 从0开始就有20000 - 1 = 19999
//即通过19999次系统的运行,就是2000ms

总结:


定时器中断时间(s) = (TIM_Prescaler + 1)* (TIM_Period +1) / 时钟频率

定时器中断时间(ms)=(TIM_Prescaler + 1)* (TIM_Period +1) * 1000 / 时钟频率

本文标签: 学习笔记TIMPrescalerTIMPeriod