关于STM32F407的定时器中断的诡异问题

2019-07-20 09:10发布

我现在使用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平台的话,请大家也测试一下,不知是什么原因,有知道的说一声,万分感谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
三叶草
1楼-- · 2019-07-20 09:34
进中断才是正常的,不懂你在说什么
caosix
2楼-- · 2019-07-20 15:26
 精彩回答 2  元偷偷看……
lycreturn
3楼-- · 2019-07-20 16:47
定时器没关,间隔10ms就进入中断,如果你想只中断一次,那就在中断函数里关闭定时器
liushenwen2009
4楼-- · 2019-07-20 18:57
 精彩回答 2  元偷偷看……
yygkqzh
5楼-- · 2019-07-20 23:39
 精彩回答 2  元偷偷看……

一周热门 更多>