最近調試GD32 串口中斷發現一個問題,系統默認打開了USART_FLAG_ORE中斷,所以先關掉,不然會一直響應和執行該中斷函數,見如下代碼:
void USART1_IRQHandler(void)
{
//由于打開USART_INT_RBNE中斷后,
//系統默認打開了USART_FLAG_ORE中斷,所以先關掉,不然會一直響應和執行該中斷函數(USART1_IRQHandler)
if(USART_GetIntBitState(USART1, USART_FLAG_ORE) == RESET)
{
USART_ClearBitState(USART1,USART_FLAG_ORE);
//USART_DataReceive(USART1);
}
if(USART_GetIntBitState( USART1, USART_INT_RBNE) != RESET)
{
USART_ClearBitState(USART1,USART_FLAG_ORE);
/* Read one byte from the receive data register */
RxBuffer[RxCount++] = (USART_DataReceive(USART1));
|