频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
MC8630模块(EVDO)成功发送短信
2012-11-27 09:19:26           
收藏   我要投稿

  这个发短信问题已经纠结笔者快两个月了,陆陆续续产生一些奇怪的问题,这里笔者对使用此模块要特别注意的地方进行一些总结和说明,希望用这个模块发短信的朋友们能够从中得到参考,提高开发进度。

    1.与MC8331A不同的是,MC8630是交互式发短信的。什么意思?

    MC8331A是直接一条AT指令,过去,其中包括发送短信的号码,内容和长度,而8630则不是这样,它是这样:

  

[cpp] 
at^hcmgs="15868152889"CR    //CR是回车 
>                           //>号是模块返回的 
hello                       //这是你要发送的数据 
[cpp] 
0x1a                        //结束符 
[cpp] 
^HCMGS:1                    //如下是模块返回的 
OK 
^HCMGSS:1  www.2cto.com
    它是交互式的,首先输入要发送的号码,然后等待模块回应:“>”这个字符,然后在输入要发送的数据,这样完成发送短信。

    2.第一个问题倒不是什么难事,最让人纠结的就是结束符问题,看过手册的人都知道,如果是英文的要发送0x1a这个结束符,如果是中文要发送0xaa 0x1a这两个结束符。

    大家也许会想这个不是很简单吗?是的,一开始笔者也认为很简单,于是对于构造at指令的最后一个字符的时候赋值为:

  

[cpp]  
cmd[end] = 0x1a 

    这样弄吧,很长一段时间程序就一直阻塞在这个地方,经过检查发现不了问题,为什么?其实它的意思是:

[cpp] 
cmd[end] = "\x1a" 

   这点要特别注意,估计大多数人都是死在这个地方!

   3.AT指令“\r”问题

    也许你有过这个错误,也许你没有,但是发送AT指令一定要加"\r",pdf上没有,也不会特别说明,所以at指令必须有回车符,以保证指令开始的时候是顶头开始。如:

  

[cpp] 
atCmdSend("AT\r"); 

    这个是小细节问题,不过如果编程编到头昏眼花的时候,可能不注意,也会让人百思不得其解

点击复制链接 与好友分享!回本站首页
相关TAG标签 模块 短信
上一篇:基于VC++2012图形化解决皇后问题
下一篇:[并查集]判断是否为树
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站