关于串口数据的采集和分离(高分)
发布时间:2010-06-14 16:42:39 文章来源:www.iduyao.cn 采编人员:星星草
关于串口数据的采集和分离(高分求助)
小弟现在正在用SIM300 GPRS模块在做一些开发,用的是430的单片机。GPRS模块和单片机是通过串口进行数据通信的。在写程序的时候遇到了一个很大的麻烦。首先GPRS模块返回数据(向单片机发送数据)具有很大的随机性,什么时候有数据过来时不确定的。在程序中数据接收用的是中断处理,于是问题来了。
比如我想在向SIM300发一个AT指令,指令正确的话应该向单片机返回AT</r></n>OK</r></n>我现在想要对返回的数据进行采集,以便进行分析。但是我该从什么时候开始采集,又该怎么判断采集结束呢,用</r></n>肯定不行,不是因为数据是以</r></n>开始,又是以</r></n>结束,而是假如在向SIM300发完指令,而SIM300还没来得及返回AT</r></n>OK</r></n>时,突然收到一条短信(收到短信,模块也会向单片机返回数据进行提示,这些数据都是以</r></n>开始和</r></n>结束的),这样的话很定会发生误判。又不能采用一直等的方式,这样很容易产生死循环。试了好多方法都不是太理想,比如以有数据发过来,且多长时间没有数据继续发过来作为判结束。这些方法都能判断一帧数据结束,但是不能解决我上面提到的问题,也就是这帧数据是不是之前所发指令所回应的数据。说白了问题的根本就是,可以判断一帧数据结束,但是无法判断着帧数据是不是之前所发指令回应数据,如果就此判断肯定会发生误判。
怎样对串口的数据进行提取才比较安全有效啊,有哪位大虾做过相关开发没,指点指点小弟啊。小弟也写了一些demo程序,也能跑的起来,但是不是太健壮,程序跑飞的情况时有发生。主要就是在串口数据采集过程中存在问题,SIM300模块返回的数据不是误判了,就是没采集到。
------解决方案--------------------
帮顶, 楼主加油啊,小弟也要开始做短信控制方面的了,本人Q: 582237371
------解决方案--------------------
晕死,没人了么。100分啊,别浪费了。
其实我觉得要是只做短信控制方面的话,要简单的多。
------解决方案--------------------
1、程序跑飞和你描述的问题没有关系,肯定是你数组越界或者指针乱指之类的问题
2、我没有使用过GPRS,向你问一个问题,你发送AT指令,GPRS模块返回AT</r></n>OK</r></n>,那么收到短信也是AT</r></n>OK</r></n>吗?如果不是,那么我认为还是可以区分的。
3、你提到的“比如以有数据发过来,且多长时间没有数据继续发过来作为判结束”,这个是超时判断,是必须的
------解决方案--------------------
楼主,我也在调试GPRS模块,而且我也是用430单片机在做。
一起研究哈,加我QQ:279804250。
至于你说的问题,我见人家有这样处理的:
利用字符串函数strstr(char *str1, char *str2)。
strstr(recieve_data,"OK")
receive_data为串口接收数据存放的数组
strstr()函数具体用法你可以百度下就知道了
不知道这个回答你满意不,呵呵
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
关于3G模块上网速率的疑问
模块通过的是串口和主板连接,串口最高的波特率是115200bps,那市场上的上网卡是如何实现14Mbps的速率的?
...
-
如何window xp 或win7下的蓝牙编程
想编写一个window xp 或win7下的蓝牙小程序,却无从下手,网上找到的例子,都是在window mobie上的,...
-
有没集成wifi功能的单片机或处理器件芯片
有没集成wifi功能的单片机或处理器件芯片. 我想将该处理器做一个WIFI终端设备来用. 芯...
-
求 一种3G无线路由器,有两个SIM卡插槽,
有没有 一种3G无线路由器,有两个SIM卡插槽,同时支持联通和电信两种3G模式,同时有RJ45接口作为...
-
3G视频服务器
公司开发IPCAM,希望视频可以通过3G无线网络发送,让外访问。
已经开发了相关的板子,让联通的3G卡可以拔号上网,拔号很成...
-
GPRS模块和电脑通信
由于电脑是动态IP的,所以不知道要怎么下手!不可能每次都手动设置IP!
------解决方案--------------------
只...
-
SIM900发送AT+SAPBR=1,1返回错误!!!
用单片机给SIM900发送指令和结果返回如下,到第三条AT+SAPBR=1,1时,就返回+CME ERROR: operation n...
-
不同接口wifi的问题
wifi模块的的接口有很多比如SPI、SDIO、USB等,它们的传输数据的速率(M/S)是一样的吗?能达到多少?如果是要实时传输...
-
PC做服务端,GPRS模块做客户端,PC要配置什么才能与GPRS通信?
我们在做一个智能公交站牌,公交站牌上能显示某一站车的预计到达时间,现在...
-
【求教】华为3G模块EM770W,有哪位高人使用过或了解的吗?
EM770W无线通信模块支持WCDMA 3G
现在EM770W这个模块拿到手了,用串口连接,给...