串口出现错误数据

[复制链接]
5060|12
 楼主| cshij2009 发表于 2012-3-22 18:54 | 显示全部楼层 |阅读模式
我用两个芯片做串口通信,一个芯片循环发送0到255的数据;另一个芯片每次按键之后接收三个数据,理论上三个数据应该连续。现在问题是,每接收两百次的时候出现一次错误,如0x03,0x04,0xfe。错误数据的规律是,两个数据连续,另一个数据高四位是全1,低四位任意,即0xfx.。数据采用偶校验,9600波特率。怀疑是干扰,可是我的两个板子是公司产品上的,连接线都有插头的。不知道问题是什么?
 楼主| cshij2009 发表于 2012-3-22 19:03 | 显示全部楼层
我是模拟串口通信
NE5532 发表于 2012-3-22 20:04 | 显示全部楼层
除非现场有强干扰,否则9600的串口很难出错,检查软件和232芯片(如果有)。
 楼主| cshij2009 发表于 2012-3-24 13:22 | 显示全部楼层
3# NE5532 我接收数据的时候,有时候连续1000次不出现错误,有时候大概连续几百次出现几次错误。那这是软件的问题吗?如果是软件的问题,我感觉现在这个样子无从下手呢
NE5532 发表于 2012-3-24 15:16 | 显示全部楼层
基本可以肯定是软件问题,除非你是在干扰很严重的地方测试,比如在电焊机旁边,巨大的交流电机旁边之类。3.3V或者5V串口在30cm范围内,RS232串口在10米以内,出错的概率跟中500W差不多。
ningling_21 发表于 2012-3-24 16:56 | 显示全部楼层
小概率事件,有可能是数据未对齐导致错误...
 楼主| cshij2009 发表于 2012-3-24 18:27 | 显示全部楼层
6# ningling_21 你说的数据未对齐是什么意思?我发送的数据是软件循环发送从0到 255,应该不会遗漏啊
 楼主| cshij2009 发表于 2012-3-24 20:17 | 显示全部楼层
5# NE5532 我现在排除干扰啦,因为我觉得,如果是干扰的话,接收的错误数据不应该是两个连续,另一个 数据任意。现在判断是软件的问题,我该怎么办呢,因为我找了很多遍也找不出毛病呀。
NE5532 发表于 2012-3-24 21:43 | 显示全部楼层
5# NE5532  我现在排除干扰啦,因为我觉得,如果是干扰的话,接收的错误数据不应该是两个连续,另一个 数据任意。现在判断是软件的问题,我该怎么办呢,因为我找了很多遍也找不出毛病呀。 ...
cshij2009 发表于 2012-3-24 20:17


这么抽象的问题,除了自己找,有人帮你解决得看运气了。建议楼主清理软件,做到每一行都不随意,有依据。

另推荐看本版精华帖里《程序调试黑宝书》
 楼主| cshij2009 发表于 2012-3-28 21:32 | 显示全部楼层
9# NE5532 我用PC的模拟串口软件和我的发送芯片通信,能够正确发送数据,所以应该是我接收程序有问题。我把接收数据流程图 传上来给您看看吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| cshij2009 发表于 2012-6-8 17:58 | 显示全部楼层
9# NE5532 问题解决啦,我接收的时候,捕获的下降沿不一定就是一个数据的起始位,所以有时候不连续。谢谢各位帮助
JC.Wang 发表于 2012-6-12 15:32 | 显示全部楼层
小弟过来观摩各位大神的切梭,想当初我因为晶振设置的不对,搞来稿去搞了2天,我擦
hjs1618 发表于 2012-6-12 18:28 | 显示全部楼层
你把捕获的下降沿当成是一个数据的起始位?那这样会有什么问题呢,你接收机按下键的时候才捕获的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

73

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部