stm32 HAL庫 串口接收數據過載導致死機的解決辦法


當串口接收大量數據來不及處理的時候,會出現 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刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM