为什么定时器中断要清除而串口不必?

2019-08-20 15:50发布

光盘资料中的串口实验和定时器实验中,为什么定时器的中断函数中有清除中断标志位,而串口的中断函数中没有啊?
而且我自己写程序的时候如果不把定时器中断清除他好像会一直产生中断。

这是串口接收中断函数代码

void USART1_IRQHandler(void)
{
        u8 res;
         if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
     res= USART_ReceiveData(USART1);
     USART_SendData(USART1,res);   
  }
}

这是定时器向上计数中断函数代码

void TIM3_IRQHandler(void)   //TIM3中断
{
        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
                {
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
                LED1=!LED1;
                }
}

新人求指教~!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
大雄先生
1楼-- · 2019-08-21 10:01
 精彩回答 2  元偷偷看……
虎啸
2楼-- · 2019-08-21 15:16
为什么我看着说USART_FLAG_RXNE: Receive data register not empty flag是个宏定义?不能被清零?

一周热门 更多>