搜索
bottom↓
回复: 13

gprs的AT指令回应的处理问题

[复制链接]

出0入0汤圆

发表于 2011-10-13 10:28:08 | 显示全部楼层 |阅读模式
我在做GPRS的时候,碰到这样一个问题,单片机正在发送数据然后等待AT指令的回应,这个时候会不会恰好碰到上位机往下发的数据?如果碰到这种情况,程序是如何区分是AT指令的响应还是上位机的数据呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2011-10-13 16:27:46 | 显示全部楼层
没有人知道么?苹果猫大侠能不能进来说几句呢?我拜读了你的GTM900的代码,没有发现关于这个问题的处理,莫非在实际中,不会发生此种情况么?

出0入0汤圆

 楼主| 发表于 2011-10-14 09:47:23 | 显示全部楼层
自己顶一下

出0入0汤圆

 楼主| 发表于 2011-10-14 14:24:37 | 显示全部楼层
继续顶。。。

出0入0汤圆

 楼主| 发表于 2011-10-17 11:29:26 | 显示全部楼层
自己顶,就不信没人解决这个问题

出1070入962汤圆

发表于 2011-10-17 12:11:38 | 显示全部楼层
思路问题。这种情况一定会发生的。

不要去死等某个应答,而是根据得到的应答做相应的处理,状态机伺候。这就是你为啥没有在我的代码里边发现专门处理流程的原因。

出0入0汤圆

发表于 2011-10-17 15:21:29 | 显示全部楼层
串口RX->缓冲区-->数据处理--|------>GPRS指令回码缓冲区->等待处理
                           |
                           |------>下行数据缓冲区->等待处理

没出现什么问题

出0入0汤圆

发表于 2011-10-17 20:00:17 | 显示全部楼层
请问楼上的缓冲区里 有多少方法?

出0入0汤圆

发表于 2011-10-17 20:47:00 | 显示全部楼层
我用MAX232与gprs通信,调试时,串口不知道为什么不返回OK,只是返回些数字而已,为什么呢?

出0入0汤圆

发表于 2011-10-17 20:58:44 | 显示全部楼层
HEX ASCII码显示互换下看看。

出0入0汤圆

 楼主| 发表于 2011-10-18 10:11:41 | 显示全部楼层
了解了,感谢各位

出0入0汤圆

发表于 2011-10-18 10:32:15 | 显示全部楼层
回复【10楼】farmerzhangdl  
-----------------------------------------------------------------------

你也在做GPRS吧,能帮我看一下,这个问题吗?链接http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5125320&bbs_page_no=1&bbs_id=3045

出0入0汤圆

发表于 2014-3-8 23:09:05 | 显示全部楼层
Appcat 发表于 2011-10-17 12:11
思路问题。这种情况一定会发生的。

不要去死等某个应答,而是根据得到的应答做相应的处理,状态机伺候。这 ...

苹果猫您好,请教一下, 如何区分modem串口收到的是数据还是AT指令反馈?或者说,如何判断收到一帧完整的GPRS帧?通过超时判断可不可以呢?不过我没有找到确切的GPRS帧间隔值,也就无法设置合理的帧超时值。看了您的程序,使用每次读取1行的方式进行解读,并且使用了状态标志来规定当前单片机是处于主动接收还是被动接收状态,这个方法在单任务中肯定没问题,但是在多任务中当前单片机的状态肯定是不断地在主动接收与被动接收之间轮换,就可能出现问题。您在很多帖子里说用状态机,我现在困惑的就是如何根据modem串口收到的数据提取出相应的状态。还望大侠不吝赐教!多谢多谢!

出1070入962汤圆

发表于 2014-3-12 17:49:46 | 显示全部楼层
xlqiang 发表于 2014-3-8 23:09
苹果猫您好,请教一下, 如何区分modem串口收到的是数据还是AT指令反馈?或者说,如何判断收到一帧完整的 ...

数据和AT指令反馈,有区别吗?都是送给单片机的数据。

判断一帧完整数据,很简单,看具体使用模块的AT指令手册,当有数据发送到串口时的指令格式,根据格式来解析就可以了。

我每次读取一行,是因为GTM900模块返回数据都编码成一行了,不一定能推广到其它模块使用。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 03:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表