今天上班的時(shí)候在用一個(gè)單片機(jī)寫串口發(fā)送程序讓上位機(jī)不斷監(jiān)聽大多數(shù)情況都是正常的只是每隔幾分鐘突然掉幀數(shù)據(jù)明明是“33”卻變成“30”還掉了幀出現(xiàn)如下圖情況:
在紅色方框中嚴(yán)重掉幀,并且數(shù)據(jù)明明是"33" 卻變成了"30",于是我百度了一下,問題主要有以下幾個(gè)方面:
(1)波特率:最直接的方法就是降低波特率。(2)發(fā)送間隔:如果條件允許,可以將發(fā)送端的發(fā)送頻率降低,采用定時(shí)發(fā)送的方式,每間隔一段時(shí)間發(fā)送;如果定時(shí)50ms有掉幀,定時(shí)100ms試試。(3)上拉電阻:根據(jù)網(wǎng)上有些文章提到的方法,還可以在串口接收端增加上拉電阻,有時(shí)候即使發(fā)送端沒有發(fā)出數(shù)據(jù),接收端也會誤接到一些數(shù)據(jù),頻繁進(jìn)入中斷也會降低單片機(jī)處理效率,在電路上增加上拉電阻的目的就在于降低誤接的概率,提高單片機(jī)的處理效率。 (4)不要使用過長的串口線
(5)使用外部無源晶振,不要使用有源晶振和內(nèi)部晶振。
(6)檢查代碼,是不是串口工作時(shí),其他的更加高級的中斷打斷了串口。這些方法都沒有實(shí)踐過,明天上班再來實(shí)踐一下吧,如果同學(xué)們認(rèn)為還有其他的問題,留言吧,我明天統(tǒng)一實(shí)操。
-
串口
+關(guān)注
關(guān)注
15文章
1627瀏覽量
83427
發(fā)布評論請先 登錄
cs32A010串口通訊問題
DMA 實(shí)戰(zhàn)指南:零 CPU 占用玩轉(zhuǎn)高速數(shù)據(jù)傳輸
請問CW32 UART支持哪些種類的數(shù)據(jù)幀結(jié)構(gòu)?
請問CW32 UART支持哪些數(shù)據(jù)幀結(jié)構(gòu)呢?
CW32 UART的數(shù)據(jù)幀結(jié)構(gòu)有哪些特點(diǎn)?
CW32L010的學(xué)習(xí)筆記
CW32L010的串口輸出
使用nrf54L15的NORDIC藍(lán)牙芯片,通過串口發(fā)送一幀數(shù)據(jù)包時(shí),會出現(xiàn)分包發(fā)送分析
串口空閑中斷原理和特點(diǎn)
RISC-V 算法原理及串口通信
【RA4M2-SENSOR】—— 12.串口接收不定長度數(shù)據(jù)
變頻器突然掉負(fù)載對變頻器有什么影響
如何使用20829 can-fd發(fā)送64字節(jié)擴(kuò)展標(biāo)識符數(shù)據(jù)幀?
第十四章 USART——串口通訊
【學(xué)習(xí)筆記】串口數(shù)據(jù)突然掉幀
評論