串口发送SMS中文短信步骤
1.设置SMS格式:发送指令 AT+CMGF=0 (0为PDU格式格式,1为Text模式)
qStrCmd= "AT+CMGF=0\r"; myCom->write(qStrCmd.toAscii());
2.发送短信长度:发送指令 AT+CMGS=length
int iLength=strlen(m_SendCont.toStdString().c_str())/2; qStrCmd=QString("%1%2\r").arg("AT+CMGS=").arg(iLength-9); myCom->write(qStrCmd.toAscii());
3.发送短信内容:
myCom->write((m_SendCont+"\x01a").toStdString().c_str());
SMS编码
08 91 683108501905F0 11 00 0d 91 685158191026F4 00 08 01 06 60a8597d0021(您好!)
1、SCA:
08 服务中心的电话号码长度(默认00 将读取SIM 中设置的SCA)
91 短消息中心地址的类型,常用为 0x91
683108501905F0 短信服务中心号码
2、PDU Type:11
协议数据单元类型
3、MR:00
Message Reference
4、DA 接收方地址 :0d 91 685158191026F4
0d 接收方电话号码长度
91 表国际
685158191026F4 号码加86
5、PID协议标识 (Protocol-Identifier):00
6、DCS 数据编码方案:08
参数表示用户数据(UD)采用什么编码方案
7、VP 信息有效期:01
8、UDL 用 户 数 据 长 度:06
参数表示消息在SMSC中不再有效的时长
9、UD 用 户 数 据 :60a8597d0021
编码类型为USC2(16bit)
注:测试时,发送地址为10086时,SCA不能为默认00
AT+CMGS的参数<length>是从PDUType部分开始计算PDU的长度,不包括SCA的长度。
源码下载:http://download.csdn.net/detail/wyz365889/4431313