搜索
bottom↓
回复: 4

siemens Mc75模块软件讨论(mc75兼容mc55),弄过mc55的兄弟指点一下

[复制链接]

出0入0汤圆

发表于 2010-1-4 16:57:58 | 显示全部楼层 |阅读模式
在用Mc75模块,写数据的话根据datasheet已经比较完美了,因为mc75的urc会有^sisw=0,1来提示,而对读数据,现在不好把握,^sisr=0,1这个urc它是有条件的自动跳出来,我目前的方法是,不管这个urc,而是每次去读数据时用at^sisr=0,0去查询有多少个字节的数据,再进行读取,在整个读的过程中,将其分为几个状态,        enum data_state
{
        QUERY_APPLYED,//查询读缓冲区有多少字节,发送了at^sisr=0,0后
        QUERYED_NUM,//查询到缓冲区有多少个字节,发送了at^sisr=0,0后收到sisr:0,num
        CAN_READ_APPLY,//可以读数据,表示发送at^sisr=0,0后收到了OK
        READ_APPLYED,//发送了读命令,at^sisr=0,10(数目根据刚才查询到的数目)       
        CAN_READ,//可以进行读数据了,发送读请求后收到 ^sisr:0,5收到此就可以了
        READ_DONE //读取数据完成
};
这样根据这种状态机思想发送读后不必让cpu在那死等着模块返回,但是问题又出现了,这个^sisr=0,1它是不自觉的跳出来,而查询有多少个字节没读的返回也是^sisr=0,num,假如这个num=1,照样两者容易弄混,而且这个^sisr=0,1是不自觉的跳出来,假如我在发送at^sisr=0,0,首先收到的是^sisr=0,1,这时由于状态是QUERY_APPLYED,我则将这个当成是返回值,而不是urc,这样整个数据就乱了,
请高手指点一下

出0入0汤圆

发表于 2010-1-4 17:28:16 | 显示全部楼层
取消有新数据自动上报即可!
一般我们是以自动上报有新数据在把数据读完,跟读短信一样

出0入0汤圆

发表于 2010-1-4 17:29:06 | 显示全部楼层
查查AT手册

出0入0汤圆

 楼主| 发表于 2010-1-4 17:43:04 | 显示全部楼层
事实我想用自动上报模式,^sisw=0,1这种urc是很有用的,还有^sis的urc,这样我可以实时监测当前模块的状态,事实上我现在传数据基本是正常的,时间长了会出问题,另外一个问题是有时会丢一个换行,如读取数据的OK<CR><LF>,有时候就检测不到<LF>,导致了状态一直在一个,从而不能传输数据,专业做gprs dtu的是不是也用内部的tcp/ip?

出0入0汤圆

发表于 2010-1-4 21:28:44 | 显示全部楼层
一般很少用内带TCP/IP的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-8 11:12

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

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