找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3410|回復: 7
收起左側(cè)

STM32單片機串口通信速度過快,數(shù)據(jù)來不及處理

[復制鏈接]
ID:1008389 發(fā)表于 2022-3-26 21:29 | 顯示全部樓層 |閱讀模式
我現(xiàn)在用stm32連接UHF rfid ,用串口通信, 波特率為57600, 模塊通訊速度太快,經(jīng)常導致串口接收異常,產(chǎn)生ORE,請問該怎么解決呢?
回復

使用道具 舉報

ID:883242 發(fā)表于 2022-3-26 23:29 | 顯示全部樓層
我用主頻48MHz的STM32F091同時處理8個115200bps串口數(shù)據(jù)都沒有不夠用!

另外再%一下STM32的HAL庫,寫的跟%%一樣,上面這個任務一開始用HAL庫做的,最多只能處理3個串口,坑死我了。換成StdPeriph庫,馬上就舒服了。后來蛋疼用LL庫寫了一遍,也完全能處理的過來。唯獨HAL庫簡直就是個垃圾,串口中斷處理跟進去發(fā)現(xiàn)里面居然有3000行代碼,隨便街上找個%培訓半天都寫不出HAL庫這么制杖的代碼。
回復

使用道具 舉報

ID:1008389 發(fā)表于 2022-3-27 10:34 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-3-26 23:29
我用主頻48MHz的STM32F091同時處理8個115200bps串口數(shù)據(jù)都沒有不夠用!

另外再%一下STM32的HAL庫,寫的 ...

我好像就是用HAL庫寫
回復

使用道具 舉報

ID:587810 發(fā)表于 2022-3-27 16:58 | 顯示全部樓層
建議自己寫代碼,如果還是不行就開啟DMA傳輸
回復

使用道具 舉報

ID:752974 發(fā)表于 2022-3-29 16:17 | 顯示全部樓層
HAL中串口中斷接收函數(shù)不能用,太繁瑣了,最好自己寫接收部分函數(shù)。另外,不要在中斷接收中處理數(shù)據(jù)。
回復

使用道具 舉報

ID:1011864 發(fā)表于 2022-3-29 16:39 | 顯示全部樓層
不是速率的問題,
回復

使用道具 舉報

ID:1008389 發(fā)表于 2022-3-29 22:17 | 顯示全部樓層
munuc_w 發(fā)表于 2022-3-29 16:17
HAL中串口中斷接收函數(shù)不能用,太繁瑣了,最好自己寫接收部分函數(shù)。另外,不要在中斷接收中處理數(shù)據(jù)。

那我在嘗試嘗試
回復

使用道具 舉報

ID:775776 發(fā)表于 2022-3-30 14:07 | 顯示全部樓層
用庫函數(shù)板的 DMA 空閑的時間處理數(shù)據(jù) 如果單純的串口中斷里處理 出現(xiàn)異常是正常的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表