今天上班的時候
在用一個單片機寫串口發送程序
讓上位機不斷監聽
大多數情況都是正常的
只是每隔幾分鐘突然掉幀
數據明明是“33”
卻變成“30”
還掉了幀
出現如下圖情況:
在紅色方框中嚴重掉幀,并且數據明明是"33" 卻變成了"30",于是我百度了一下,問題主要有以下幾個方面:
(1)波特率:最直接的方法就是降低波特率。(2)發送間隔:如果條件允許,可以將發送端的發送頻率降低,采用定時發送的方式,每間隔一段時間發送;如果定時50ms有掉幀,定時100ms試試。(3)上拉電阻:根據網上有些文章提到的方法,還可以在串口接收端增加上拉電阻,有時候即使發送端沒有發出數據,接收端也會誤接到一些數據,頻繁進入中斷也會降低單片機處理效率,在電路上增加上拉電阻的目的就在于降低誤接的概率,提高單片機的處理效率。 (4)不要使用過長的串口線
(5)使用外部無源晶振,不要使用有源晶振和內部晶振。
(6)檢查代碼,是不是串口工作時,其他的更加高級的中斷打斷了串口。這些方法都沒有實踐過,明天上班再來實踐一下吧,如果同學們認為還有其他的問題,留言吧,我明天統一實操。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
串口
+關注
關注
14文章
1547瀏覽量
76230
發布評論請先 登錄
相關推薦
can網絡數據幀的特點
特點,在分布式系統中得到了廣泛應用。 數據幀的重要性 :數據幀是CAN網絡中用于數據傳輸的基本單元,其結構設計和特性直接關系到整個網絡的通信
can數據幀有哪幾個域組成
CAN(控制器局域網絡)是一種基于消息傳遞的通信協議,廣泛應用于汽車、工業自動化和嵌入式系統等領域。CAN協議的數據幀是用于傳輸信息的基本單位。 1. CAN數據幀概述 CAN
CAN數據幀的各個域及其作用
CAN(Controller Area Network)是一種用于汽車電子系統中的通信協議,它具有高可靠性、實時性和靈活性等特點。在CAN通信中,數據幀是最基本的通信單元,用于傳輸信息。 概述
求助,使用STM32G030C8T6的串口接收問題求解
的數據出現問題后,從機的串口只能接收到主機發送的數據幀中的第一個字節。具體如下面的圖所示
這里我用串口助手模擬主機詢問從機
發表于 05-28 06:11
串口通訊時的數據幀格式和通訊協議有什么區別?
串口通訊時的數據幀格式和通訊協議是兩個不同的概念,它們在串口通訊中起著不同的作用,但都是為了實現可靠的、有效的數據傳輸。
labview串口接收數據怎么不丟幀
時如何避免丟幀的方法。 首先,我們需要了解什么是丟幀。在串口通信中,丟幀指的是接收方無法正確解析發送方發送的數據幀,從而導致數據的丟失或錯誤。造成丟幀的原因可能有很多,如
can數據幀的標準格式
CAN(Controller Area Network)是一種廣泛應用于汽車、工業控制和通信領域的串行通信總線標準。CAN數據幀是CAN總線上傳輸數據的基本單位,它包含了一系列的字段,用于確定
評論