STM32 HAL庫使用串口遇到問題,串口在發送數據的時候如果有數據發送過來,就沒有辦法接收,並且會關掉接收中斷,經過調試和查證後發現,結果如下。
當調用HAL_UART_Transmit函數的時候,函數內部會給串口上鎖,使其處於忙的狀態
調用HAL_UART_Receive_IT函數時也會有同樣的鎖操作,導致串口無法繼續接收
所以我的解決辦法時直接在庫中把鎖的函數__HAL_LOCK(huart)註釋掉,這樣就沒問題了
最後,串口屬於異步收發,設計的時候不因該有同時收發的情況,所以,我的程序框架寫的不好,沒有考慮這個情況。Mark here
聞道有先後 術業有專攻
From: shaynerain.com
By: Shaynerain