今天上班的时候
在用一个单片机写串口发送程序
让上位机不断监听
大多数情况都是正常的
只是每隔几分钟突然掉帧
数据明明是“33”
却变成“30”
还掉了帧
出现如下图情况:
在红色方框中严重掉帧,并且数据明明是"33" 却变成了"30",于是我百度了一下,问题主要有以下几个方面:
(1)波特率:最直接的方法就是降低波特率。(2)发送间隔:如果条件允许,可以将发送端的发送频率降低,采用定时发送的方式,每间隔一段时间发送;如果定时50ms有掉帧,定时100ms试试。(3)上拉电阻:根据网上有些文章提到的方法,还可以在串口接收端增加上拉电阻,有时候即使发送端没有发出数据,接收端也会误接到一些数据,频繁进入中断也会降低单片机处理效率,在电路上增加上拉电阻的目的就在于降低误接的概率,提高单片机的处理效率。 (4)不要使用过长的串口线
(5)使用外部无源晶振,不要使用有源晶振和内部晶振。
(6)检查代码,是不是串口工作时,其他的更加高级的中断打断了串口。这些方法都没有实践过,明天上班再来实践一下吧,如果同学们认为还有其他的问题,留言吧,我明天统一实操。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
串口
+关注
关注
14文章
1540浏览量
76099
发布评论请先 登录
相关推荐
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总线上传输数据的基本单位,它包含了一系列的字段,用于确定
评论