打印

串口出现错误数据

[复制链接]
4412|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次不出现错误,有时候大概连续几百次出现几次错误。那这是软件的问题吗?如果是软件的问题,我感觉现在这个样子无从下手呢

使用特权

评论回复
5
NE5532| | 2012-3-24 15:16 | 只看该作者
基本可以肯定是软件问题,除非你是在干扰很严重的地方测试,比如在电焊机旁边,巨大的交流电机旁边之类。3.3V或者5V串口在30cm范围内,RS232串口在10米以内,出错的概率跟中500W差不多。

使用特权

评论回复
6
ningling_21| | 2012-3-24 16:56 | 只看该作者
小概率事件,有可能是数据未对齐导致错误...

使用特权

评论回复
7
cshij2009|  楼主 | 2012-3-24 18:27 | 只看该作者
6# ningling_21 你说的数据未对齐是什么意思?我发送的数据是软件循环发送从0到 255,应该不会遗漏啊

使用特权

评论回复
8
cshij2009|  楼主 | 2012-3-24 20:17 | 只看该作者
5# NE5532 我现在排除干扰啦,因为我觉得,如果是干扰的话,接收的错误数据不应该是两个连续,另一个 数据任意。现在判断是软件的问题,我该怎么办呢,因为我找了很多遍也找不出毛病呀。

使用特权

评论回复
9
NE5532| | 2012-3-24 21:43 | 只看该作者
5# NE5532  我现在排除干扰啦,因为我觉得,如果是干扰的话,接收的错误数据不应该是两个连续,另一个 数据任意。现在判断是软件的问题,我该怎么办呢,因为我找了很多遍也找不出毛病呀。 ...
cshij2009 发表于 2012-3-24 20:17


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

另推荐看本版精华帖里《程序调试黑宝书》

使用特权

评论回复
10
cshij2009|  楼主 | 2012-3-28 21:32 | 只看该作者
9# NE5532 我用PC的模拟串口软件和我的发送芯片通信,能够正确发送数据,所以应该是我接收程序有问题。我把接收数据流程图 传上来给您看看吧

接收中断.rar

4.05 KB

使用特权

评论回复
11
cshij2009|  楼主 | 2012-6-8 17:58 | 只看该作者
9# NE5532 问题解决啦,我接收的时候,捕获的下降沿不一定就是一个数据的起始位,所以有时候不连续。谢谢各位帮助

使用特权

评论回复
12
JC.Wang| | 2012-6-12 15:32 | 只看该作者
小弟过来观摩各位大神的切梭,想当初我因为晶振设置的不对,搞来稿去搞了2天,我擦

使用特权

评论回复
13
hjs1618| | 2012-6-12 18:28 | 只看该作者
你把捕获的下降沿当成是一个数据的起始位?那这样会有什么问题呢,你接收机按下键的时候才捕获的啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

73

帖子

0

粉丝