HAL庫實踐記錄之串列埠接收不定長資料

2021-09-26 13:44:05 字數 759 閱讀 4639

串列埠1接收不定長資料

實驗板是原子mini板

一開始使用官方庫,只能接受定長資料。把資料長度設定為1時,傳送多位元組資料時又會丟數。所以自己重寫串列埠中斷處理函式。

首先搞一下cube配置用法:mode選非同步,下邊設定好引數。

設定串列埠中斷

然後就配置完了。生成**

第一步在主函式初始化階段新增如下**(hal f4 串列埠中斷不響應可能就是這裡沒開)

__hal_uart_enable_it(&huart1,uart_it_rxne);//開串列埠1中斷

第二步,刪除官方庫函式,新增自己的中斷函式(如果再生成**的話要再刪除一次官方函式的呼叫)

void usart1_irqhandler(void)

第三步,重寫函式,如下

void user_uart1handler(void)

else

}

這樣就能就收了。

我也是借鑑了其他帖子,一般都是用dma或者空閒中斷,我都不太了解就沒用。我用標準庫的時候就是這麼寫的檢查非空,儲存資料,然後把非空標誌清除。先用著等遇到其他問題的時候再解決。

HAL庫下串列埠接收中斷接收OPENMV傳送的資訊

最小系統 stm32f103rct6 開發環境 stm32cubeide 實現功能 openmv作為上位機傳送識別物體後獲取的座標資訊,加上幀頭幀尾表示資訊結構 舉個例子,如果你需要傳送兩個座標 x,y 傳送的座標資訊之間沒有間隔。那資料流應該是這個樣子 xyxyxyxyxyxy 微控制器在接受時很...

gpio模擬串列埠uart接收資料(HAL庫)

gpio模擬uart的原理就是根據所需要的uart的波特率,計算出每個bit所用的時間,在此時間段內去讀取gpio的輸入,然後將讀取的8bit拼接起來即可,當然這期間要檢測起始位和結束位。uart的起始位是下降沿,結束位是上公升沿。為了檢測準確,我們讀取每個bit的中位位置,所以定時時間是每個bit...

STM32 HAL庫串列埠不定長資料

void hal uart rxcpltcallback uart handletypedef huart ulart3 read bufs ulart3 counts read ulart3 if read ulart3 0x0d if ulart3 counts 30 hal uart rece...