STM32HAL庫串口同時收發無法再次接收問題

STM32 HAL庫使用串口遇到問題,串口在發送數據的時候如果有數據發送過來,就沒有辦法接收,並且會關掉接收中斷,經過調試和查證後發現,結果如下。

當調用HAL_UART_Transmit函數的時候,函數內部會給串口上鎖,使其處於忙的狀態

調用HAL_UART_Receive_IT函數時也會有同樣的鎖操作,導致串口無法繼續接收

所以我的解決辦法時直接在庫中把鎖的函數__HAL_LOCK(huart)註釋掉,這樣就沒問題了

最後,串口屬於異步收發,設計的時候不因該有同時收發的情況,所以,我的程序框架寫的不好,沒有考慮這個情況。Mark here

聞道有先後 術業有專攻

From: shaynerain.com

By: Shaynerain

發佈了120 篇原創文章 · 獲贊 55 · 訪問量 168萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章