/*******************************************************************************
-
定时器定时时间计算公式 *
*72M下定时值 = (1+预分频TIM_Prescaler)/72 * (1+定时周期TIM_Period) *
-
TIM的一个时钟计数周期 = (1/72)us , 预分频后要经过(1+预分频TIM_Prescaler)个时钟周期(1/72)us 才会计一次数, 一共要循环(1+定时周期TIM_Period)次,才会溢出,产生一个TIM中断事件,达到自己想要达到的定时时间
*备注:当AHB=72MHz时,APB1的预分频系数必须大于2,因为APB1总线挂的设备都属于低速外设,
它的最大频率只能为36MHz,如果APB1的预分频系数=2,则因为这个倍频器,TIM2–TIM7
仍可以达到72MHz的时钟频率
*******************************************************************************/
void TIM2Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_TimeBaseInitStructure.TIM_Prescaler = 7199; //设置预分频,使每一次的计数周期为100us
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period = 9999; //循环10000次,刚好为1s,循环完成后自动重装
TIM_TimeBaseInitStructure.TIM_ClockDivi

本文详细解析了在72MHz时钟频率下STM32定时器的使用,介绍了计算定时值的方法,强调了预分频TIM_Prescaler和定时周期TIM_Period的计算公式,并特别指出当AHB时钟为72MHz时,APB1预分频系数应大于2以确保低速外设不超过36MHz的限制。通过示例函数TIM2Init()展示了如何初始化TIM2定时器。
最低0.47元/天 解锁文章
1946

被折叠的 条评论
为什么被折叠?



