你好陌生人 发表于 2013-7-6 22:34

串口通信检错问题

小弟刚开始学习,现在在写一个串口通信的程序,可是传输的数据总是有错误,奇偶校验也是有错误,现在求一个检错程序,给个思路也好,在网上看到有求和检错的,但是没有程序,还是不懂,求大神们帮助啊

你好陌生人 发表于 2013-7-7 00:48

难道没有人吗,求解答啊

chunyang 发表于 2013-7-7 23:15

用PC串口做监视,注意波特率首先要对,然后才是程序问题。

你好陌生人 发表于 2013-7-7 23:29

chunyang 发表于 2013-7-7 23:15 static/image/common/back.gif
用PC串口做监视,注意波特率首先要对,然后才是程序问题。

程序是正确的,波特率也是正确的,但是就是传输的数据错误率太高了,想写个程序像冗余检错那样的,错误的数据重发,但是不知道怎么写

航天风云 发表于 2013-7-8 13:53

可以查查串口数据发送得对不对,看看时序关系是否一致,你可用“RS485串口数据采集器”在电脑上直接看到发送的数据,同时也能看到时序关系,我用过,调试起来很好,很方便,让你一目了然,用了以后你会放不下,现在我还在用,真的很好,你可以用用,帮助很大。在淘宝上就可以买到。
关键是:你能确切的知道线路上走的究竟是什么数据,而不是猜测走的是什么数据。

你好陌生人 发表于 2013-7-8 21:14

航天风云 发表于 2013-7-8 13:53 static/image/common/back.gif
可以查查串口数据发送得对不对,看看时序关系是否一致,你可用“RS485串口数据采集器”在电脑上直接看到发 ...

我现在在软件里面加入了奇偶校验,串口调试助手里面没有选择奇偶校验,结果错误率就降下来了,真心不知道怎么回事啊,现在错误率好低的,这是什么情况啊

张允 发表于 2013-7-8 21:46

首先保证你的波特率是否正确,你可以从以下如下
1、MCU的内部时钟(或者外部晶振)是否满足通信要求
2、MCU初始化时系统时钟
3、串口通信的时钟

先确定上面设置是否正确,然后考虑
1、硬件条件是否满足,当然了如果PCB版以前已经验证过,这步你可以跳过,如果实在不放心,你就得检查本版硬件与以前版本是否存在差异,特别是电阻、电容是否满足要求;
2、软件,软件是否通过验证,如果已验证,可以跳过;
3、串口通信硬件环境,是否有电磁干扰等。

当然了,也不是非得按照上面的方式去做,你有可以直接从串口发送的数据入手,去分析问题产生的原因:
1、串口监控
2、时序分析

以上说只限于本人胡说,请谨重参考。

航天风云 发表于 2013-7-10 12:33

有什么问题可以加我的QQ,在这无法发一些图片给你们参考。QQ;904118275

sfpxfpcfp 发表于 2013-7-10 14:28

波特率设置好了吗???

你好陌生人 发表于 2013-7-10 19:23

sfpxfpcfp 发表于 2013-7-10 14:28 static/image/common/back.gif
波特率设置好了吗???

设置是好的   原来arm没有选择奇偶校验的时候错误率大概有20%,现在我加了奇偶校验,我在串口调试助手不打开奇偶校验的话,基本不会出现错误,但是打开的话,基本上全是错误了,这是怎么回事啊

你好陌生人 发表于 2013-7-10 19:33

chunyang 发表于 2013-7-7 23:15 static/image/common/back.gif
用PC串口做监视,注意波特率首先要对,然后才是程序问题。

波特率是对的   设置问题都是对的但就是错误率在20%左右,不知道怎么办

chunyang 发表于 2013-7-10 22:42

你好陌生人 发表于 2013-7-10 19:33 static/image/common/back.gif
波特率是对的   设置问题都是对的但就是错误率在20%左右,不知道怎么办

设置对不代表实际上就对,晶体有精度指标的,而且跟分频率有关。
页: [1]
查看完整版本: 串口通信检错问题