當串口接收大量數據來不及處理的時候,會出現 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錯誤標志位 } }
當串口接收大量數據來不及處理的時候,會出現 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錯誤標志位 } }
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。