天天看點

STM32CUBE HAL庫 關于序列槽usart收發的一個問題

最近項目中遇到了一個問題,因為開始用freertos,然後想加入序列槽收發功能。列印正常,但是加入接收中斷後,開始出bug,最後鎖定接收中斷挂掉了。

原因:HAL庫的序列槽接收發送函數有bug,就是收發同時進行的時候,會出現鎖死的現象。

解決:需要注釋掉    HAL_UART_Receive_IT 和 HAL_UART_Transmit_IT 中的 __HAL_LOCK(huart) 函數

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在接收中斷中使用HAL_UART_Receive_IT()函數,會導緻CR1的RXNEIE 置0,最後一直處于錯誤狀态,無法進行接收。

處理辦法:注釋掉    HAL_UART_Receive_IT 中的 __HAL_LOCK(huart) 函數

繼續閱讀