大家好
我用的stm32单片机,我已经做了其他可能的排除,最好确定 定时器使能后先进入一次中断。
我感觉应该是有些标志位没有清除,希望各位大侠帮我看看。
void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 6000;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* Prescaler configuration */
TIM_PrescalerConfig(TIM2, 36000-1, TIM_PSCReloadMode_Immediate);
TIM_ARRPreloadConfig(TIM2, ENABLE);
//清中断,以免一启用中断后立即产生中断
TIM_ClearFlag(TIM1, TIM_FLAG_Update);
//清零脉冲计数器
TIM_SetCounter(TIM2,0x0000);
// TIM 中断使能
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
//TIM2 使能
TIM_Cmd(TIM2, ENABLE);
}
你确认在执行
TIM_Cmd(TIM2, ENABLE);
语句后cpu马上进入了中断函数?
允许后会开时计数,计数满值后就会进行中断
我确认,因为我做了,中断使能后马上禁止中断的实验,也进了中断,说明使能后直接进的中断。
我的也是 但是我是使能中断后直接进入中断服务程序的 还没有使能TIM。。。不知道为什么有人知道吗