3608|3

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于串口数据的采集和分离(高分求助) [复制链接]

小弟现在正在用SIM300 GPRS模块在做一些开发,用的是430的单片机。GPRS模块和单片机是通过串口进行数据通信的。在写程序的时候遇到了一个很大的麻烦。首先GPRS模块返回数据(向单片机发送数据)具有很大的随机性,什么时候有数据过来时不确定的。在程序中数据接收用的是中断处理,于是问题来了。
比如我想在向SIM300发一个AT指令,指令正确的话应该向单片机返回ATOK我现在想要对返回的数据进行采集,以便进行分析。但是我该从什么时候开始采集,又该怎么判断采集结束呢,用肯定不行,不是因为数据是以开始,又是以结束,而是假如在向SIM300发完指令,而SIM300还没来得及返回ATOK时,突然收到一条短信(收到短信,模块也会向单片机返回数据进行提示,这些数据都是以开始和结束的),这样的话很定会发生误判。又不能采用一直等的方式,这样很容易产生死循环。试了好多方法都不是太理想,比如以有数据发过来,且多长时间没有数据继续发过来作为判结束。这些方法都能判断一帧数据结束,但是不能解决我上面提到的问题,也就是这帧数据是不是之前所发指令所回应的数据。说白了问题的根本就是,可以判断一帧数据结束,但是无法判断着帧数据是不是之前所发指令回应数据,如果就此判断肯定会发生误判。
怎样对串口的数据进行提取才比较安全有效啊,有哪位大虾做过相关开发没,指点指点小弟啊。小弟也写了一些demo程序,也能跑的起来,但是不是太健壮,程序跑飞的情况时有发生。主要就是在串口数据采集过程中存在问题,SIM300模块返回的数据不是误判了,就是没采集到。

最新回复

帮顶, 楼主加油啊,小弟也要开始做短信控制方面的了,本人Q: 582237371  详情 回复 发表于 2010-7-1 15:50
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我晕,怎么一个人都没有啊。快沉了
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
帮顶……
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
帮顶, 楼主加油啊,小弟也要开始做短信控制方面的了,本人Q: 582237371
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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