|
关于stm32定时器定时计算问题
下面是配置:
TIM_TimeBaseInitStruct.TIM_Period =1000;
TIM_TimeBaseInitStruct.TIM_Prescaler = 35999;
TIM_TimeBaseInitStruct.TIM_ClockDivision = 0;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
TIM_CleaRFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
我想知道这里的定时时间是多少?
计算方法是什么?
答:
预分频系数为36000 —— TIM_Prescaler = 35999
计数周期为1000 —— TIM_Period =1000
向上计数方式 —— TIM_CounterMode = TIM_CounterMode_Up
从0计数到1000则产生中断 —— TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE)
如果你测得0.5s进一次中断,则定时器的输入时钟应该为72MHz:
72MHz / 36000(预分频) / 1000 = 2Hz
|
|