我现在使用407的定时器2和定时器3的溢出中断(只开了溢出中断),中断服务程序:
/****************************************************/
//定时器3定时周期10ms中断服务程序
/****************************************************/
void TIM3_IRQHandler(void)
{
RUNLED_ON;//点亮指示灯
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
现在发现清除完中断标志后,定时器竟然又进入了中断,这时的中断标志位却是0。后来在中断服务程序里加了一句监控语句
/****************************************************/
//定时器3定时周期10ms中断服务程序
/****************************************************/
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==RESET) //无溢出中断
{
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//此处设断点
}
RUNLED_ON;//点亮指示灯
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
发现经常停到断点处,也就是说在TIMER3的溢出中断标志还是0的时候竟然也进中断了,实在不解。
后来用正点原子的开发板和其自带例程测试也是同样问题。如果有407平台的话,请大家也测试一下,不知是什么原因,有知道的说一声,万分感谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>