3289|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ARM与C的串口通信乱码问题 求教 [复制链接]

我将开发板与PC用串口线连起来,刚开始时串口助手正常显示,但关掉ARM电源一会儿后,再测试全是乱码,之后怎么样都不行。请问这是什么原因?
此帖出自ARM技术论坛

最新回复

上位机的代码做的不完善,我遇到过这样的问题。导致这样的问题原因比较多: 1.软件代码本身的容错性差 2.通信双方,有一方重启后,可能会无法控制的发出数据。例如ARM7的串口,在硬件复位时,无法控制的会在串口上发送一堆无规律的数据,而另一方如果把这些数据当做是有效的,自然会影响到后面的解析。 3.其他的原因没有深究。 但这些原因虽然很多很复杂,但现象是一样的:数据错乱,一般校验和是通不过的,所以针对这些方面,方法却是统一的,就是检查到校验和通不过就丢弃并刷新串口。校验和的检查,发送方可以用最后一个字节来存储前面所有字节的和(需要支持翻转),接受方把前面的全加起来(需要支持翻转),看是不是等于最后一个字节的数据,当然无法保证绝100%的正确率,不过一般通信达到一定的准确率就可以了。校验和也可以采用自己定义的方式来做,不要受我给出的例子的局限。 建议你要在上位机和下位机中做数据校验,甚至是状态机(状态机我也不是很清楚,但至少校验是不难做的,也是很有意义和效果的)。 我的情况是: 上位机是ARM9,下位机是ARM7,其实和你这个是一样的问题,ARM7重启后,ARM9会出现问题,另外即使是不重启也有时会出现数据错乱的问题,最先想到是使用串口API中的刷新函数,但却发现没有任何效果,可能是这个开发平台有问题,然后想到了最绝最有效的方法,就是close串口后再open串口,这样就有刷新的作用。  详情 回复 发表于 2013-1-15 21:29
点赞 关注
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
时钟频率不对,初始化化有问题
此帖出自ARM技术论坛
 
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

板凳
 
上位机的代码做的不完善,我遇到过这样的问题。导致这样的问题原因比较多:
1.软件代码本身的容错性差
2.通信双方,有一方重启后,可能会无法控制的发出数据。例如ARM7的串口,在硬件复位时,无法控制的会在串口上发送一堆无规律的数据,而另一方如果把这些数据当做是有效的,自然会影响到后面的解析。
3.其他的原因没有深究。

但这些原因虽然很多很复杂,但现象是一样的:数据错乱,一般校验和是通不过的,所以针对这些方面,方法却是统一的,就是检查到校验和通不过就丢弃并刷新串口。校验和的检查,发送方可以用最后一个字节来存储前面所有字节的和(需要支持翻转),接受方把前面的全加起来(需要支持翻转),看是不是等于最后一个字节的数据,当然无法保证绝100%的正确率,不过一般通信达到一定的准确率就可以了。校验和也可以采用自己定义的方式来做,不要受我给出的例子的局限。

建议你要在上位机和下位机中做数据校验,甚至是状态机(状态机我也不是很清楚,但至少校验是不难做的,也是很有意义和效果的)。

我的情况是:
上位机是ARM9,下位机是ARM7,其实和你这个是一样的问题,ARM7重启后,ARM9会出现问题,另外即使是不重启也有时会出现数据错乱的问题,最先想到是使用串口API中的刷新函数,但却发现没有任何效果,可能是这个开发平台有问题,然后想到了最绝最有效的方法,就是close串口后再open串口,这样就有刷新的作用。
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表