當串口接收大量數據來不及處理的時候,會出現 overrun error,此時我們需要清標志位
手冊上寫到,清ORE位需要先讀SR寄存器,再讀DR寄存器
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { if(HAL_UART_GetError(huart) & HAL_UART_ERROR_ORE) { __HAL_UART_FLUSH_DRREGISTER(huart); //讀DR寄存器,就可以清除ORE錯誤標志位 } }