2012-08-25 | #1 (permalink) |
论坛管理员
注册日期: 2009-06-30
帖子: 861
|
浅谈AT+CSMP的用法(2)
浅谈AT+CSMP的用法(2)
这今天被wavecom 模块发送中文短信的事搞的头大,不过最后还是成功了。 说一说整个事的过程吧! 首先说一下这个事情的背景: 我们公司有条产品线是嵌入式计算机,这个产品线里面有个产品是带wavecom的GSM/GPRS模块的。 有个客户就在使用这个产品,因为这个产品有GSM/GPRS模块,它可以发送短信,于是这个可爱的客户就要将发送短信这个功能给用上。 接下来就是过程: 有一天, 这个客户问我:你们的产品怎么实现发送短信功能啊? 我不加思索的就丢了一个发送短信的程序给他。 然后,他测试完之后,又打电话问我:这东西好像只能发送英文的文本短信啊,能不能发送中文啊? 我说:理论上应该可以的啦,不过你要自己试试,因为我没测试过,你可以到网络上搜一下这方面的资料! (我想,这个东西应该是通用的模块,肯定没有问题的) 结果,他又打电话过来,说:兄弟,不行啊,我按照网上的方法试过了,发不了中文短信啊。 我就纳闷了,为什么别人可以,我们就不行了,于是,我就告诉他说:那我还试试吧!(毕竟东西是自家的,测试起来应该要熟悉一些)。 由于当时手上没有产品,就等了好几天。 (以上都是发生在年前) 回家过年,又过了好几天。(时间过的真快啊) 终于回公司了,开始测试,按照网上的方法: AT+CMGF=0 (PDU模式,可以发送中文短信,网上都这么说的) AT+CMGS=xx (xx是下面PDU的长度,网上的介绍还是挺详细的) >xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (这一大串的数字具体含义网上介绍的很多) ctrl+z 可是结果,这个模块返回的信息却是:ERROR 我又不停的测试了网上所介绍的多种方法,但是结局只有一个:ERROR 此时,我就快放弃了,但是就在这时候,我发现有篇文章介绍说普通的文本模式下也是可以发送中文了。看到这样的信息又给了我一线希望。 但是,网上这个文章说要设置AT+CSMP的,例如: AT+CSMP=<x>,<x>,<x>,8 看到这样的信息,我又郁闷了,这个x到底是多少呢,迷糊啊,又在网上疯狂的找这样的信息,最后看到有网友的CSMP设置是:17,167,0,240。我想那我就用AT+CSMP=17,167,0,8吧。于是我就用下面的步骤去测试: AT+CSMP=17,167,0,8 AT+CMGF=1 (普通文本模式) AT+CMGS=139xxxxxxxx (接收方的手机号码) >4F60597D (中文“你好”的Unicode编码) ctrl+z (发送) OK,收到了中文短信,那个激动啊!!!! 然后,我有测试发送普通英文短信,结果收到的乱码,不过此时已经知道了,关键是CSMP的设置,刚才设置成中文模式,所以出现了这样的问题,于是我又设置成:AT+CSMP=17,167,0,0 这样就可以了! 一切搞定! 最后,这个AT+CSMP很重要,具体它有什么作用,还是上网查吧! 哈哈!
__________________
让世界倾听我们的笛声 |