一开始这条语句是这样的:TIM_TimeBaseStructure.TIM_Period=42000-1,但是不是经过1ms进入一次中断,而是少于1ms就进入中断了,后来经过尝试,发现TIM_TimeBaseStructure.TIM_Period=30000-1,这样设置,大概经过1ms进入一次中断,但也不是准确的1ms,这是什么原因?
TIM1_Configuration(void){
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period=30000-1;
TIM_TimeBaseStructure.TIM_Prescaler=2-1;
TIM_TimeBaseStructure.TIM_ClockDivision=0;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数模式
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//使能定时器的中断
TIM_Cmd(TIM1, ENABLE);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>