今天上班的時候在用一個單片機寫串口發(fā)送程序讓上位機不斷監(jiān)聽大多數(shù)情況都是正常的只是每隔幾分鐘突然掉幀數(shù)據(jù)明明是“33”卻變成“30”還掉了幀出現(xiàn)如下圖情況:
在紅色方框中嚴重掉幀,并且數(shù)據(jù)明明是"33" 卻變成了"30",于是我百度了一下,問題主要有以下幾個方面:
(1)波特率:最直接的方法就是降低波特率。(2)發(fā)送間隔:如果條件允許,可以將發(fā)送端的發(fā)送頻率降低,采用定時發(fā)送的方式,每間隔一段時間發(fā)送;如果定時50ms有掉幀,定時100ms試試。(3)上拉電阻:根據(jù)網(wǎng)上有些文章提到的方法,還可以在串口接收端增加上拉電阻,有時候即使發(fā)送端沒有發(fā)出數(shù)據(jù),接收端也會誤接到一些數(shù)據(jù),頻繁進入中斷也會降低單片機處理效率,在電路上增加上拉電阻的目的就在于降低誤接的概率,提高單片機的處理效率。 (4)不要使用過長的串口線
(5)使用外部無源晶振,不要使用有源晶振和內(nèi)部晶振。
(6)檢查代碼,是不是串口工作時,其他的更加高級的中斷打斷了串口。這些方法都沒有實踐過,明天上班再來實踐一下吧,如果同學們認為還有其他的問題,留言吧,我明天統(tǒng)一實操。
-
串口
+關注
關注
15文章
1607瀏覽量
81946
發(fā)布評論請先 登錄
使用nrf54L15的NORDIC藍牙芯片,通過串口發(fā)送一幀數(shù)據(jù)包時,會出現(xiàn)分包發(fā)送分析
【RA4M2-SENSOR】—— 12.串口接收不定長度數(shù)據(jù)
變頻器突然掉負載對變頻器有什么影響
如何使用20829 can-fd發(fā)送64字節(jié)擴展標識符數(shù)據(jù)幀?
下位機CY7C68013A發(fā)送數(shù)據(jù),上位機C#讀取數(shù)據(jù),510字節(jié)一幀,會丟幀或者幀內(nèi)錯位是怎么回事?
【RA-Eco-RA4M2開發(fā)板評測】使用RA4M2的串口實現(xiàn)任意任意類型任意長度的數(shù)據(jù)接收,并將接收到的數(shù)據(jù)顯示在串口助手上
STM32Cube學習筆記 (十六篇全)
工業(yè)與IT網(wǎng)絡中的以太網(wǎng)數(shù)據(jù)幀:格式與用途全解析

【學習筆記】串口數(shù)據(jù)突然掉幀
評論