1,开发板:串口调试助手,GSMA6模块。
在使用GSM A6模块发送中文短信的时候总是发送不成功,发送英文短信是ok的。我的模块图片如下:
这个模块,比较便宜,性价比高,所以就买了这个模块。发送英文短信的详细流程如下:
1、连线,U_TXD连接USB转TTL的RXD,U_RXD连接USB转TTL的TXD,GND、VCC分别连接USB转TTL的GND和5V
2、按住模块的POWER键,马上键入AT+IPR=9600,设置波特率
3、AT+CMGF=1<回车> 点击发送 //文本方式发送
4、AT+CMGS="10086" <回车> 点击发送
5、此时返回'>'字符
6、hello 点击发送
7、1A 勾选十六进制后发送
IPR=9600 +CREG: 3 ^CINIT: 1, 0, 0 ^CINIT: 2, 32, 41891 ^CINIT: 8, 2048, 1 +CREG: 1 ^STN: 37 ^CINIT: 4, 8192, 37 ^CINIT: 16, 0, 1638460 ^CINIT: 32, 0, 0 +CIEV: READY AT+CMGF=1 OK AT+CMGS="10086" > hello +CMGS: 1 OK +CIEV: "MESSAGE",1 +CMT: "尊敬的客户,您好!Hello! 【掌厅使用更便捷!详情点击 http://wap.js.10086.cn】 【您的24小时专属客服,为了,省点短信费,直接发到10086,返回还及时,方便调试~
串口界面如下:
但是发送中文短信的时候,死活不成功,一开始用的PDU编码器如下:
按照网上流行的步骤,
1、AT+CMGF=0 <回车> 点击发送
2、AT+CMGS=16 <回车>点击发送
3、返回'>'字符
4、0891683108100005F011000791680180F60008B0044F60597D 点击发送
5、1A 勾选16进制发送,点击发送
返回+CMS ERROR:500 !!查看这个错误,文档说是500 UNKNOWN_ERROR ,奇怪,为什么会报这个错误呢??排除了手机欠费,SIM卡损坏,网络不佳等情况之后,还是无法解决。
我想是不是因为PDU编码器的问题,于是乎网上找了一个PDU编码器,发现可以正常使用,为方便大家我把该编码器打包上传,供大家下载,下载连接在本文最后。
该编码器界面如下:
首先,说一下该编码器的使用,
1、不要填写短信息中心号码!!!这一点切记,如果把短信息中心号码填写为:+8613800100500,
后面就会报错+CMS ERROR:500
2、输入接收方号码,注意前面加上"86"
3、选择字符位数16
4、输入要发送的中文信息
5、点击转换。
可以看到转换之后有AT+CMGW=30,后面使用的时候要把CMGW改为CMGS!!!
下面我们就可以发送测试短信了,回到我们的串口助手
1、AT+CMGF=0 <回车> 点击发送
2、AT+CMGS=30 <回车> 点击发送
3、返回">"字符
4、0011000791680180F60008AA124F60597DFF0C4E2D65876D4B8BD577ED4FE1 点击发送
5、1A选择16进制发送,点击发送
返回:
+CMGS: 0
OK
正常发送。下面是测试代码:
AT+CMGF=0 OK AT+CMGS=30 > 0011000791680180F60008AA124F60597DFF0C4E2D65876D4B8BD577ED4FE1 +CMGS: 0 OK +CIEV: "MESSAGE",1 +CMT: ,154 0891683108500145F36005800180F60008814051617010238A0500036804020034FF1A6D4191CF67E58BE24E0E529E7406000A003100310032FF1A67E58BE28BDD8D394F59989D000A003100310033FF1A67E58BE2595799104F7F752860C551B5000A3010003200345C0F65F64E0D625370CA6C5F82CF79FB52A857287EBF5BA2670DFF0C8BF770B951FB8FDB51650068007400740070003A002F002F007700610070 +CIEV: "SMSFULL",1
顺利解决A6芯片发送中文短信的问题,特地贴出来,希望能够帮助大家,工具已经为大家准备好了,需要的同学可以自行下载~