在收发短信的 AT 指令的详细说明
发短信如图 1:
图 1 短信发送流程图
①ATE0V0+CMGF=0+CNMI=2,1;
② 判断如果发送英文短信:
⑴ 发送指令 ATE0V0+CMGF=1+CNMI=2,1;
⑵ 发送指令 AT+CMGS=”对方电话号码”;
⑶ 发送要发送的内容;
③ 判断如果发送中文短信:
⑴ 发送指令 ATE0V0+CMGF=1+CNMI=2,1;
⑵ 发 送 指 令 AT+CMGS= 长 度 ,
0011000D91683118180295F20008A00253D1 这是发一个中文长度为 36/2-1 最
后得到的是 17,加一个中文短信长度加 2;
⑶ 写 0011000D9168;
⑷ 写对方电话号码;
⑸ 写 0008;
⑹ 写 A0:短信在服务器里的有效时间可以用 A0;
⑺ 写短信内容长度;
⑻ 写短信内容;
⑼ 将之前写入的加上结束符 0X1A,0X00,0X00 发送出去
④ 判断没有发送短信则跳出
4.2.2 读短信
① 读短信号码参数 ATE0V0+CPMS=”SM”:
如果响应+CPMS: 0,0,0,0 没有卡,发送 AT+CFUN=1,1 指令启动 GSM 大部分功能。
如果响应+CPMS: 0,20 没有短信执行返回
如果有短信去查询短信存储数目
否则进行出错处理:返回
② 列举所有存储的短消 AT+CMGL=ALL
用 AT+CMGR=短信存储号,将卡里的短信读一遍
③判断最后一条短信的内容,如果读到0000发送AT+CMGF=1转成TEXT英文格式读,
如果读到0008发送AT+CMGF=0转成PDU中文格式读
用PDU 格式包括所有头信息的短消息以二进制方式传送写成十六进制的格式
用TEXT 格式命令和响应均为ASCII 字符
短 信 格 式
0891683108200105F0240D91685100208966F20008807042006423
23024F60
对方手机号码是91685100208966F2 转成文本码为+8615900298662
08 为8 bit 码
初始化
读 SIM 电 话
号码 1
将 温 度 值 用 英
文 方 式 发 到 手
机上