一、总进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 */
}