一、STM32L05x 中断串口注意事项

一、总进UART中断

1、问题描述:

没有向单片机发数据,但接收中断中
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)         
          {   
           RxData = USART_ReceiveData(USART2);
        USART_ClearFlag(USART2,USART_FLAG_RXNE);        
                  }
每次可以到if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
这一句,但是到不了RxData = USART_ReceiveData(USART2);这一句。也就是进入了中断。

2、解决方法

在中断最前面加上

if((USART1->ISR & USART_ISR_ORE) == USART_ISR_ORE){
USART1->ICR = USART_ICR_ORECF;/* clear OverRun flag */
}

 

posted @ 2016-10-27 13:10  shuaiting  阅读(2988)  评论(0)    收藏  举报