一、英文短信
 发:AT
 收:OK
 发:AT+CMGF=1 
 收:OK
 发:AT+CMGS=13902433649
 收:>
 发:data→        //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A)
 收:+CMGS: 54 OK二、中文PDU短信
 本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信:
 接收号码:+8613902433649
 短信内容:工作愉快!
 短信中心号码:+86138001005001、短信中心号码处理:用字符串 addr 表示
 a、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
      即 addr = "+8613800100500"
     => addr = "8613800100500F"
 b、将奇数位和偶数位交换。
     => addr = "683108100005F0"
 c、将短信息中心号码前面加上字符91,91是国际化的意思
     => addr = "91683108100005F0"
 d、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8 => "08"
     => addr = "0891683108100005F0"2、手机号码处理:用字符串 phone
 a、将手机号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
     即 phone = "+8613902433649"
     => phone = "8613902433649F"
 b、将手机号码奇数位和偶数位交换。
     => phone = "683109423346F9"3、短信息部分处理:用字符串 msg 表示
 a、转字符串转换为Unicode代码,例如“工作愉快!”的unicode代码为 5DE54F5C61095FEBFF01,(转换在linux里可用iconv函数实现。)
 b、将 msg 长度除2,保留两位16进制数,即 5DE54F5C61095FEBFF01 = 20 / 2 => "0A",再加上 msg
     => msg = "0A5DE54F5C61095FEBFF01"4、组合
 a、手机号码前加上字符串 11000D91(1100:固定,0D:手机号码的长度,不算+号,十六进制表示,91:发送到手机为91,发送到小灵通为81)
     即 phone = "11000D91" + phone
     => 11000D91683109423346F9
 b、手机号码后加上 000800 和刚才的短信息内容,000800也写死就可以了
     即 phone = phone + "000800" + msg
     即 11000D91683109423346F9 + 000800 + 0A5DE54F5C61095FEBFF01
 => phone = 11000D91683109423346F90008000A5DE54F5C61095FEBFF01
 c、phone 长度除以2,格式化成2位的十进制数
     即 11000D91683109423346F90008000A5DE54F5C61095FEBFF01 => 50位 / 2 => 255、所以要发送的内容为
 发:AT
 收:OK
 发:AT+CMGF=0 
 收:OK
 发:AT+CMGS=25
 收:>
 发:addr+phone→   //→为发送符(ctrl+z,十六进制0x1A)
 收:+CMGS: 54 OK6、如果返回不是ERROR,恭喜你,发送成功了
三、几个要注意的问题
 1、发送的指令用0x0D结尾,注意不是通常认为的0x0D,0x0A。特别是在发送PDU短信的AT+CMGS=25命令时,
一定只能以0x0D结尾。
 2、在发送短信内容时,以0x1A(代表ctrl+Z的虚拟键值)结尾。
 3、用AT+CMEE=1命令,可以在短信猫返回ERROR时带上原因,这样方便调试。=================================================
3、短信息操作
     短信操作步骤及相关命令:
 (1)  设置短信格式——AT+CMGF
 (2)  设置短信存储载体——AT+CPMS
 (3)  设置短信接收提示方式——AT+CNMI
 (4)  发送短信——AT+CMGS
 (5)  显示短信——AT+CMGL
 3.1   AT+CPMS
 命令解释:选择短信存储载体
 3.1.1命令格式:AT+CPMS=<mem1>[,<mem2>][,<mem3>]
 设置短信存储载体
 命令返回:+CPMS:<used1>,<total1>,<used2>,<total2>,<used3>,<total3>
           OK
            ERROR
 测试结果:a. AT+CPMS=” SM” 
            +CPMS: 8,15,8,15,1,40
            OK
             设置成功,并显示状态:SM(SIM卡)存储器总容量为 15,当前存储量 8; 
            ME(模块)存储器总容量为 40,当前存储量 1;mem1 定义为 SM;
          b. AT+CPMS=” SM” ,” SM” 
            +CPMS: 8,15,8,15,1,40
            OK
              设置成功,并显示状态:SM存储器总容量为 15,当前存储量 8;
            ME存储器总容量为 40,当前存储量 1;mem1 定义为SM;mem2
             定义为SM;
          c. AT+CPMS=” SM” ,” SM” ,” SM” 
            +CPMS: 8,15,8,15,8,15
            OK
             设置成功,并显示状态:SM存储器总容量为 15,当前存储量 8;
            ME存储器总容量为 40,当前存储量 1;mem1 定义为SM;mem2
             定义为SM;mem3 定义为 SM;
          d. AT+CPMS=” ME” ,” SM” ,” SM” 
            +CPMS: 1,40,8,15,8,15
            OK
             设置成功,并显示状态:SM存储器总容量为 15,当前存储量 8;
            ME存储器总容量为 40,当前存储量 1;mem1 定义为 ME;mem2
             定义为SM;mem3 定义为 SM;
          e. AT+CPMS=” ME” ,” SM” ,” ME” 
            +CPMS: 1,40,8,15,1,40
            OK Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  9  -
             设置成功,并显示状态:SM存储器总容量为 15,当前存储量 8;
            ME存储器总容量为 40,当前存储量 1;mem1 定义为 ME;mem2
             定义为SM;mem3 定义为 ME;
          f. AT+CPMS=” ME
            ERROR
             命令格式错误,缺少{” };  注: +CPMS 后面的参数必须使用大写格式.
 3.1.2命令格式:AT+CPMS?
       显示当前短信存储载体设置
        命令返回:+CPMS:<mem1>,<used1>,<total1>,<mem1>,<used2>,<total2>,
                      <mem1>,<used3>,<total3>
                    OK
                   ERROR
        测试结果:a.   AT+CPMS?
                      +CPMS: "SM",8,15,"SM",8,15,"ME",1,40
                      OK
              当前短信存储载体设置为:mem1为 SM,mem2为 SM,mem3
              为 ME;
                        b.    AT+CPMS!
                           ERROR
                            命令错误;
 3.1.3命令格式:AT+CPMS=?
                显示本命令支持的参数
                 命令返回:+CPMS: (list of supported<mem1>s),(list of supported<mem2>s), 
                     (list of supported<mem3>s)
                       OK
                       ERROR
                测试结果:AT+CPMS=?
                            +CPMS: ("ME","SM"),("ME","SM"),("ME","SM")
                            OK
 3.2   AT+CMGF
 命令解释:设置短信格式
 3.2.1命令格式:AT+CMGF=<mode>
 命令返回:OK
           ERROR
                     设置短信格式
 3.2.2命令格式:AT+CMGF=?
 命令返回:OK
           ERROR
            显示本命令支持的参数
 3.2.3命令格式:AT+CMGF?
 命令返回:OK
           ERROR
            显示当前短信格式
 测试结果:AT+CMGF=?
 +CMGF: (0,1)   注: 0表示短信为 PDU格式, 1 表示短信为文本格式
 OK
    Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  10  -
 AT+CMGF?
 +CMGF: 0
 OK  
   
 AT+CMGF=1
 OK
   
 AT+CMGF?
 +CMGF: 1
 OK
      
 3.3   AT+CMGS
 命令解释:发送短信
 命令格式:AT+CMGS=xxx<CR>    注: xxx 代表接收短信的电话号码.
 命令返回:>                     注:  此时等待短信内容输入.  输入完短信
 内容后,需要按 Ctrl+Z发送短信.
        +CMGS: xxx           注: xxx 代表通道端口代码,它是随机的.
           OK       (此返回值表示短信发送成功)
           ERROR   (此返回值表示短信发送不成功)
 测试结果:a.    AT+CMGS=13798335220<CR>
               >ABCD1234.456<Ctrl+Z>
                 +CMGS : 97
                OK
            b.    AT+CMGS="13798335220"<CR>
 > IT IS TEST NOW<ctrl-z>
 +CMGS: 98
 OK
 注:  以上测试结果是通过文本格式传送测试. PDU格式的测试及短信发送
 方法请参照文档《pdu 格式发送短信息例子》
  
 3.4    AT+CMGR
 命令解释:读短信
 命令格式:AT+CMGR=<indes>
 命令返回:+CMGR:<stat>,[<alpha>],<length>]<CR><LF><pdu>
            OK
           ERROR
 测试结果:a. AT+CMGR=5
               OK
               返回值仅为 OK,表示 5 号短信位置为空;
             b. AT+CMGR=2
 +CMGR: 2,"REC READ","+8613798335220",,"08/03/19, 17:30:35+32"
 998B76844F60002E518D5FCD5FCD5427
 OK
 读出 2 号短信;
  
 3.5    AT+CMGW
 命令解释:写短信,并保存到存储载体 Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  11  -
 命令格式:AT+CMGW=<length>[,<stat>]<CR>
 命令返回:+CMGW: <index>
           OK
           ERROR
 测试结果:AT+CMGW="13798335220"<CR>
 > SHELLEY123456<ctrl-z>
 +CMGW: 1
 OK
 把目标地址为 13798335220 的短信存入存储载体,且被分配的地址
 为 1 号短信;
  
 3.6   AT+CMGD
 命令解释:删除短信
 命令格式:AT+CMGD=<index>
 命令返回:OK
           ERROR
 测试结果:AT+CMGD=1
           OK
           1 号短信被删除
  
 3.7   AT+CMGL
 命令解释:显示短信清单
 命令格式:AT+CMGL=<stat>
 命令返回:+CMGL:<index1>,<stat>,<oa/da>,[<alpha>],[<scts>][,<tooa/toda>,<length>]
 <CR><LF><data>[<CR><LF>
 测试结果:AT+CMGL=?
       +CMGL: (“ REC UNREAD” ,” REC READ” ,” STO UNSENT” ,” STO SENT” .” ALL” )
             注:   AT+CMGL="REC UNREAD"代表显示未读短信清单
            AT+CMGL= "REC READ"代表显示已读短信清单
            AT+CMGL= "STO SENT"代表显示已发送的存储短信清单
            AT+CMGL= "STO UNSENT"代表显示未发送的存储短信清单
            AT+CMGL= "ALL"代表显示所有短信清单
  
 3.8   AT+CMSS
 命令解释:发送存储载体中的短信
 命令格式:AT+CMSS=<index>
 命令返回:+CMSS:<mr>
           OK
            ERROR
 测试结果:AT+CMSS=2
           +CMSS: 204
           OK
  
 3.9   AT+CNMI
 命令解释:新短信提示
 3.9.1命令格式:AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>
 命令返回:OK Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  12  -
           ERROR
 测试结果:AT+CNMI=3,2
              OK
 3.9.2命令格式:AT+CNMI?
 命令返回:+CNMI:  <mode>,<mt>,<bm>,<ds>,<bfr>
 OK
            ERROR
 测试结果:AT+CNMI?
              +CNMI: 3,2,0,0,0
              OK
 3.9.3命令格式:AT+CNMI=?
 命令返回:+CNMI:  (list of supported<mode>s),  (list of supported<mt>s),   (list of
 supported<bm>s), (list of supported<ds>s) , (list of supported<bfr>s)
 OK
 测试结果:AT+CNMI=3,2
 OK
   
  
   4、TCP/IP部分
   4.1  AT+WOPEN
     命令解释:Open AT 程序管理
     命令格式:AT+WOPEN=<Mode>[,<A&Dsize>]  
 命令返回:OK
 ERROR
 测试结果:AT+WOPEN=1
                       OK
  
   4.2  AT+WIPCFG
     命令解释:TCP/IP 协议栈处理
     命令格式:AT+WIPCFG=<mode>  
             <mode>的值共包含 0和 1和 2和 3 和 4   ,   0 代表停止协议栈, 1 代
             表开启协议栈, 3 代表查询协议栈软件版本. 2 代表配置协议栈(如:AT+
            WIPCFG=2,4,1000 的意思是设置协议栈的单包最大数据为 1000 个字
             节). 4 代表协议栈的配置管理(如:AT+ WIPCFG=4,1的意思是将协议栈
             的配置数据保存到FLASH中).
     命令返回:OK
 ERROR
   测试结果:AT+WIPCFG=0
                         OK
          AT+WIPCFG=1
                        OK
          AT+WIPCFG=3    (运行此命令前,  必须先 AT+WIPCFG=1)
         WIP Soft v301 on Open AT OS v313
         Sep 28 2007 14:53:28 WIPlib:v3a02 WIPSoft:v2a07
                        OK
          AT+WIPCFG=2,4,1000
                        OK Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  13  -
          AT+WIPCFG=4,1
                        OK
  
 4.3  AT+WIPBR
     命令解释:设置通讯参数
     命令格式:AT+WIPBR=1,6  (其中 1 代表打开数据通道, 6 代表走 GPRS 通讯方式)
 命令返回:OK
 ERROR
 测试结果:AT+WIPBR=1,6               (设置通道数据格式)
                       OK
 注: AT+WIPBR=2,6,11,"APN"       (设置 APN 名称)
     AT+WIPBR=2,6,12,"Context id"    (设置通讯 ID 号)
     AT+WIPBR=2,6,0,"username"    (设置通讯用户名)
     AT+WIPBR=2,6,1,"password"    (设置通讯密码)
     AT+WIPBR=4,6,0              (启动连接进程)
     AT+WIPBR=5,6,                (停止连接进程)
     AT+WIPBR=3,6,<>             (查询 GPRS 设置参数)
     
 4.4  AT+WIPCREATE 
     命令解释:建立客户端端口连接
     命令格式:AT+WIPCREATE=2,<communication index>,<"peer IP">,<peer port>  
 命令返回:ERROR
        OK  
 测试结果:AT+WIPCREATE=2,1,"166.111.8.238",23
       OK
       +WIPREADY: 2,1
                     +WIPDATA: 2,1,3
  
 4.5  AT+WIPCLOSE
     命令解释:关闭客户端连接
     命令格式:AT+WIPCLOSE=2,<IDX>
 命令返回:ERROR
        OK
 测试结果:AT+WIPCLOSE=2,1
 OK
  
 4.6  AT+WIPDATA
     命令解释:获得最新的错误信息。
         命令格式:AT+WIPDATA=<protocol>,<idx>,<mode>
 命令返回:ERROR  
              OK
 测试结果:AT+WIPDATA=2,1,1
        CONNECT       (此时进入数据透传状态)
             
 4.7  +++
     命令解释:切换数据模式到 AT 命令状态
   命令格式:+++    (+之间间隔 1秒,即+号要分开发不能连续发) Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  14  -
 命令返回:ERROR
          OK
         测试结果:+++  (在数据透传状态输入)
 OK
         
  
 二、操作实例
     1、连接后一般操作
 AT
 OK
 测试信号强度:
 AT+CSQ
 +CSQ: 28,0
 OK
     查询模块版本:
       A TI3
 657e09gg.Q24PL001 1961548 103107 17:56
 OK
     修改串口波特率:
 AT+IPR?
 +IPR: 115200
 OK
     读 SIM卡状态:
       AT+CPIN?
       +CPIN: READY
 OK
  
 2、拨打电话
 拨打电话:
 ATD13798335220;      
 OK (接听后显示)
 挂机:
 A TH
 OK
 有电话呼入:
 RING
  
 RING
 摘机:
 ATA 
 OK
 挂机:
 A TH
 OK
 3、短信息服务:
 设置短信息格式: Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  15  -
 AT+CMGF=?
 +CMGF: (0,1)
 OK
 AT+CMGF?
 +CMGF: 1
 OK
 AT+CMGF=0
 OK
 AT+CMGF?
 +CMGF: 0
 OK
 AT+CMGF=1
 OK
 发送短信息:
 AT+CMGS="13798335220"
 > TEST SMS             (输完短信内容后按 Ctrl+z 发送)
 +CMGS: 99
 OK
 设置新短信提示方式:
 AT+CNMI?
 +CNMI: 0,1,0,0,0
 OK
 AT+CNMI=2,2        (设置模块收到短信后直接将短信送到串口 1)
 OK
 AT+CNMI?
 +CNMI: 2,2,0,0,0
 OK
 用手机发短信给模块,一会超级终端则自动显示输出.  如:
 +CMT: “ +8613798335220” ,,” 08/03/20,17:43:25+32” 
 TEST SMS TOO    (收到的短信内容)
 读短信:
 AT+CMGR=1
 +CMGR: "REC UNREAD","+8613798335220",,” 08/03/20,17:46:50+32” 
 123456ABC
 OK
 显示短信清单:
 AT+CMGL="ALL"
 +CMGL: 1,"REC READ","+8613662626940",,"03/08/29,09:44:02+00" 
 123456ABC
 +CMGL: 2,"REC READ","+8613902970800","DAVID","02/05/17,14:19:50+00" 
 66FE7ECF591A5C116B21FF0C4F6075285AE96ED17684808C80A47D278D348D6488F87684
 6211FF0C
 4F608F7B67D47684629A6478548C4E0D89C4521976848FD052A8FF0C7ED962115E2667659
 6359635
 5FEB611FFF0C7136540E4F606E106E106D887626FF0C62404EE5621189818BF4FF1A621172
 314F60
 FF0C99997682FF01 Tech-Link T&E Limited                                                                     常用 AT 命令手册
 -  16  -
 OK
 删除指定短信:
 AT+CMGD=1
 OK
  
                                                  
   5、TCP/IP操作:
     运行 OPEN AT(TCP/IP 协议)程序
 AT+WOPEN=1
 OK
     启动 TCP/IP 协议栈
 AT+WIPCFG=1
 OK
 查询 TCP/IP 协议栈软件版本
 AT+WIPCFG=3
 WIP Soft v301 on Open AT OS v313
 Sep 28 2007 14:53:28 WIPlib:v3a02 WIPSoft:v2a07
 OK
     配置单包数据包最大长度 (最大长度为 1000 字节)
 AT+WIPCFG=2,4,1000
 OK
     配置数据 TIMEOUT 时间 (时间为 8 毫秒)
 AT+WIPCFG=2,12,8
 OK
     保存协议栈配置数据
 AT+WIPCFG=4,1
 OK
     打开数据通道及通讯方式
 AT+WIPBR=1,6
 OK
     设置接入点(APN)名称
 AT+WIPBR=2,6,11,” CMNET” 
 OK
     启动数据通道
 AT+WIPBR=4,6,0
 OK
     建立客户端端口连接
 AT+WIPCREATE=2,1,” 166.111.8.238” ,23
 OK
   +WIPREADY: 2,1
              +WIPDATA: 2,1,3
     进入数据通讯模式
 AT+WIPDATA=2,1,1
     CONNECT