一、總進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 */
}