3.1 发英文短信

  • 短信模式有两种:一种是 TEXT 模式(可以发英文);一种是 PDU 模式(可 以发中文);
  • 本节发送英文短信,短信需要设置为 TEXT 模式,注意 Text 模式下只能发送ASCII 码表中的前 128 个字符,也就是英文字母,英文标点符号,阿拉伯数字等。

3.1

3.2

3.2 发送中文短信

  • 使用 PDU 模式发送下面的中文短信。
  • (1)接收号码:+86133xxxx1709
  • (2)短信内容:欢迎使用Air通信模块!
  • (3)发送的有效数据长度:43 (后面将会说明如何计算出该长度)
  • (4)使用 Air 软件,将中文短信内容、短信息中心号码及对方接收号码转换成Unicode 编码,生成一个数据包。演示如下图3-3 所示该软件在 Air系列资料“调 试工具”文件夹里。

  • 使用相关 AT 命令如下
获取短信中心
发送命令
AT+CSCA? +回车
响应: +CSCA: ,[,]
OK
短信模式设置为
PDU 模式 发送命令:
AT+CMGF=0+回车
响应: OK
数据长度设置
发送命令:
AT+CMGS= +回车
响应: OK

  • 预先处理的内容:获取到的短信中心号码:+8613800755500演示如下图 3-2 所 示。处理后生成的 PDU 数据包: 0891683108705505F011000D91683113961307F90008B01C6B228FCE4F7F75286DF1

  • 573398DE601D521B901A4FE16A215757FF01 **演示如下图 3-3 所示。

3.3

  • 配置流程如下:配置演示流程如下图 3-4 所示。

3.4

  • 图 3-2 获取短信中心号码**

3.5

  • PDU转换工具

3.6

  • 发送中文短信

3.7

3.3 发送中英文短信

  • 所使用到的命令有:AT+CMGF、AT+CSMP、AT+CSCS、AT+CMGS 其中的命令格式不再做详细介 绍,请自行查看 AT 命令手册。注意的一点就是,命令后面记得加回车,只有发送结束符命令 0X1A 的后面不需要加回车。

  • 操作步骤如下:

  • 第一步:设置短信模式为文本模式

发送命令 AT+CMGF=1
响应 OK
  • 第二步: 设置中英文模式
发送命令 AT+CSMP=17,167,1,8 ,
响应 OK
  • 第三步:设置为 UCS2 字符集编码
发送命令 AT+CSCS="UCS2"
响应 OK
  • 第四步:设置对方的手机号码

    这时候要使用 Uincode 编码转换工具。 转换工具Air系列 资料\4.调试工具\4-3Unicode 互换工具”文件中。然后发送改命令 AT+CMGS="00310033003300310036003900330031003700300039"如图 3-5 所示

3.8

  • 图 3-5 手机号转换 Unicode 字符编码**

  • 第五步:

待模块响应出现“>”之后,才能发送短信内容。在发之前短信内容需要转换成 Uincode 编码。短信内容为“欢迎使用Air系列 模块!”,转换后的 Uincode 编码“6B228FCE4F7F752898DE601D521B00530049004D00380030003000436A215757FF01”如图3-6 所示,注意图中编码间的间隔需要手动去除。

3.9

  • 图 3-6 短信内容转换 Unicode 编码

  • 综合以上步骤,演示结果如下图 3-7 所示:

3.10

  • 输入 1A 不加回车把左下角十六进制发送打钩,点击手动发送。稍等几 S 会 出现发送成功的返回信息。单片机程序设计中发送字符串"\r\n"。 图中的+CMGS:54 ,表示发送第 54 条短信。

3.4 查看短信数目

  • 发送命令

    AT+CPMS? +回车

  • 响 应:

说明参数 *+CPMS:(mem1),(used1),(total1),(mem2),(used2),(used2),(mem3), (used3),(total3)
响应 OK
  • 响应里面的参数,请参考 AT 命令手册说明,演示如图 3-8 所示。

3.11

  • 图 3-8 查看短信数目

3.5 删除短信

  • 测试命令

    发送命令:** AT+CMGD=? +回车

  • 响应:

说明参数 +CMGD :(取值列表),( 取值列表)
响应 OK
  • 设置删除对应位置的短信
发送命令 AT+CMGD=AT+CMGD=[,] +回车
响应 OK
  • 参数说明如下图3-9 ,演示如图 3-10 所示 。

3.12

  • 图 3-9 参数说明

3.13

  • 图 3-10 删除短信

3.6 读取短信内容

  • 读取短信内容所用到的AT 命令为 AT+CMGR。 读取短信内容,如果接收到的是英文短信,模块输出ASCII 码,如果收到的是中文短信,则是输出的是一连串的 Unicode 编码,这时可以利用 Unicode 编码 转换工具转换成中文。
  • 用手机给模块发送一条英文短信,内容为“Air系列 TEST!”,然后再发一条 中文短信,内容为“欢迎使用Air系列通信模块!”。模块就会收到短信并提示+CMTI: "SM",1 、+CMTI: "SM",2 其中的“SM”表示收到短信优先存储在 SM 卡中,“1 和 2”分别代表的是收到 2 条短信存储在 SM 卡存储器的位置 1 和位置 2。

3.14

  • 读取短信内容演示如下图 3-11 所示。

  • 1.发送 AT+CPMS=17,167,0,8 短信模式设置为英文模式的时候,就可以直接识别 英文,但无法识别中文,识别中文需将编码转换成中文。为了验证读取的是什么 内容,可以利用 Unicode 编码转换工具,将其转换成中文,如图 3-13 所示。

  • 2.当文本模式设置为 UCS2 字符集模式(即 AT+CSCS=”UCS2”)的时候,就无法直接识别英文,只能将字符编码转换成英文和汉字。如图 3-17 所示
  • 3.发送命令:AT+CMGR=1(或 2), 表示读取存储在位置 1 或者 2 的未读短信。
  • 4.模块回复“REC UNREAD”代表收到一条未读短信,后面紧跟着的是对方手机号码,时间日期。“RECREAD”表示已读短信。

3.15

  • ​ 图 3-11 文本模式下查看短信内容

3.16

  • 图 3-12 PDU 的 UCS2 字符集模式下读取短信**

3.17

  • 图 -13 Unicode 编码转换成汉字