最近調(diào)試GD32 串口中斷發(fā)現(xiàn)一個問題,系統(tǒng)默認(rèn)打開了USART_FLAG_ORE中斷,所以先關(guān)掉,不然會一直響應(yīng)和執(zhí)行該中斷函數(shù),見如下代碼:
void USART1_IRQHandler(void)
{
//由于打開USART_INT_RBNE中斷后,
//系統(tǒng)默認(rèn)打開了USART_FLAG_ORE中斷,所以先關(guān)掉,不然會一直響應(yīng)和執(zhí)行該中斷函數(shù)(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));
|