博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AT命令
阅读量:2352 次
发布时间:2019-05-10

本文共 5232 字,大约阅读时间需要 17 分钟。

AT指令格式:AT指令都以”AT”开头,以<CR>(即\r,回车符)结束,模块运行后,串口默认的设置为:8位数据位、1位停止位、无奇偶校验位、硬件流控制(CTS/RTS).
  注意为了发送AT命令,最后还要加上<LF> (即\n,换行符)这是串口终端要求.
  有一些命令后面可以加额外信息来.如电话号码
 
  每个AT命令执行后,通常DCE都给状态值,用于判断命令执行的结果.

AT返回状态包括三种情况 OK,ERROR,和命令相关的错误原因字符串.返回状态前后都有一个<CR>字符.

   如 <CR>OK<CR> 表示AT命令执行成功.
     <CR>ERROR<CR> 表示AT命令执行失败
     <CR>NO DIAL TONE<CR> 只出现在ATD命令返回状态中,表示没有拨号音,这类返回状态要查命令手册
 
   还有一些命令本身是要向DCE查询数据,数据返回时,一般是+打头命令.返回格式
    <CR>+命令:命令结果<CR>
1.初始化DCE的Modem设备
    主要DTE要配置好串口参数,并且向设备发送一些AT命令来进行初始化设置
 
  •     行软复位的需执行”ATZ\r”命令;
  •    禁止命令回显需执行”ATE0\r”命令;
  •    要使返回结果码为数字形式则要执行”ATV0\r”;
  •    需要设置S 寄存器的需执行”ATSn=X\r”等等
2 拨号连接
   AT拨号连接分语音拨号连接和数据拨好连接。语音拨号命令为”ATDn;\r”(注意带分号);数据拨号命令为”ATDn\r”(注意不带分号)。连接成功返回”\r\nCONNECTXXXX/RLP\r\n”,其中XXXX 表示连接速率。在这里我们只讨论数据拨号连接。要注意的是拨号连接需要一定的时间,编程时要根据实际情况进行适当的延时等待
3.挂断连接
   挂断连接(即挂机)是向DCE发送”ATH\r”
4.常用的AT命令
4.1 AT
命令解释:检测Module与串口是否连通,能否接收AT命令;
命令格式:AT<CR>
命令返回:OK (与串口通信正常)(无返回,与串口通信未连通)
4.2 AT+CSQ
命令解释:检查网络信号强度和SIM卡情况
命令格式:AT+CSQ<CR>
命令返回:+CSQ: **,##
          其中**应在10到31之间,数值越大表明信号质量越好,##应为99。
          否则应检查天线或SIM卡是否正确安装
测试结果:AT+CSQ<CR>
          +CSQ: 31, 99
          信号强度值会有少许变化,用手遮住天线,信号强度值会下降(大致在26左右)
4.3 ATZ
命令解释:恢复原厂设置
命令格式:ATZ<CR>
命令返回:OK
4.4 AT+CGMR
命令解释:查询模块版本;
命令格式:AT+CGMR<CR>
命令返回: <revision >
         +CMEERROR <err>
测试结果:AT+CGMR<CR>
         R4A021      CXC1122528
          OK
解释:模块版本号为R4A02
4.5 AT+IPR
命令解释:修改串口1波特率;
命令格式:AT+IPR=<value ><CR>
命令返回: ERROR
OK
测试结果:AT+IPR=19200<CR>
OK
注意:串口波特率修改为19200后要把串口调试工具的波特率设为相应
波特率后模块才会有返回
4.6 AT&W
命令解释:保存模块设置;
命令格式:AT&W<CR>
命令返回: OK
ERROR(保存不成功)
测试结果:AT&W <CR>
OK
5 通话操作
5.1 ATD
命令解释:拨打电话
命令格式:ATD**********;<CR>(****为电话号码)
命令返回:OK
NO DIAL TONE(没有拨号音)
NO CARRIER(无载波)
测试结果:a. ATD13510090403;<CR>
OK
呼叫成功;
b. ATD13510090403;<CR>
NO DIAL TONE
天线未接好,接触不良;
c. ATD13510090403<CR>
NO CARRIER
命令错误,缺{;};
5.2 RING
命令解释:有电话呼入
命令格式:
命令返回:无
5.3 ATA
命令解释:摘机
命令格式:ATA<CR>
命令返回:OK
测试结果:RING
RING
ATA<CR>
 OK    
接通电话
5.4 ATH
命令解释:挂机
命令格式:ATH<CR>
命令返回:OK
测试结果:ATH<CR>
    OK
 电话挂断(通话过程中
5.5 AT+CHUP
命令解释:挂机
命令格式:AT+CHUP<CR>
命令返回:OK
测试结果:RING
ATH<CR>
OK
电话挂断(尚未接通来电)
5.6 AT+VTS
命令解释:拨打分机
命令格式:AT+VTS=“分机号码”<CR>
命令返回:OK
测试结果:
AT+VTS=“0”<CR>
OK
6 短信操作
 短信操作步骤及相关命令:
(1) 设置短信格式——AT+CMGF
(2) 设置短信存储载体——AT+CPMS
(3) 设置短信接收提示方式——AT+CNMI
(4) 发送短信——AT+CMGS
(5) 显示短信——AT+CMGL
6.1 AT+CPMS
命令解释:选择短信存储载体
6.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
           设置成功,并显示状态:SM存储器总容量为15,当前存储量8;
           ME存储器总容量为40,当前存储量1;mem1定义为ME;mem2
           定义为SM;mem3定义为ME;
         f. AT+CPMS=”ME
           ERROR
           命令格式错误,缺少{”};
6.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
             命令错误;
6.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
6.2 AT+CMGF
命令解释:设置短信格式
6.2.1命令格式:AT+CMGF=<mode>
命令返回:OK
          ERROR
               设置短信格式
6.2.2命令格式:AT+CMGF=?
命令返回:OK
          ERROR
          显示本命令支持的参数
6.2.3命令格式:AT+CMGF?
命令返回:OK
          ERROR
          显示当前短信格式
测试结果:AT+CMGF=?
+CMGF: (0,1)
OK
AT+CMGF?
+CMGF: 0
OK
AT+CMGF=1
OK
AT+CMGF?
+CMGF: 1
OK
   
6.3 AT+CMGS
命令解释:发送短信
命令格式:AT+CMGS=<da>[,<toda>]<CR>
          Text is entered<ctrl-z/ESC>
命令返回:+CMGS:<mr>[,<scts>]
          +CMS ERROR:<err>
          OK
          ERROR
测试结果:a. AT+CMGS=13510090403<CR>
          >ABCD1234.456<ctrl-z>
          +CMS ERROR:500
          命令错误;
        b. AT+CMGS="13510090403"<CR>
> IT IS TEST NOW<ctrl-z>
+CMGS: 235
OK
6.4 AT+CMGR
命令解释:读短信
命令格式:AT+CMGR=<indes>
命令返回:+CMGS:<stat>,[<alpha>],<length>]<CR><LF><pdu>
          +CMS ERROR:<err>
          OK
          ERROR
测试结果:a. AT+CMGR=5
          +CMS ERROR:500
          命令错误,5号短信位置为空;
        b. AT+CMGR=2
+CMGL: 2,"REC READ","+8613682326205","N?R","03/08/28 17:30:35+00"
998B76844F60002E518D5FCD5FCD5427+CMGS: 235
OK
读出2号短信;
6.5 AT+CMGW
命令解释:写短信,并保存到存储载体
命令格式:AT+CMGW=<length>[,<stat>]<CR>
命令返回:+CMGS:<index>
          +CMS ERROR:<err>
          OK
          ERROR
测试结果:AT+CMGW="13534139079"<CR>
> SHELLEY123456<ctrl-z>
+CMGW: 1
OK
把目标地址为13534139079的短信存入存储载体,且被分配的地址
为1号短信;
6.6 AT+CMGD
命令解释:删除短信
命令格式:AT+CMGD=<index>
命令返回:+CMS ERROR:<err>
          OK
          ERROR
测试结果:AT+CMGD=1
          OK
          1号短信被删除;
6.7 AT+CMGL
命令解释:显示短信清单
命令格式:AT+CMGL=<stat>
命令返回:+CMGL:<index1>,<stat>,<oa/da>,[<alpha>],[<scts>] [,<tooa/toda>,<length>]
<CR><LF><data>[<CR><LF>
测试结果:见总测试结果;
6.8 AT+CMSS
命令解释:发送存储载体中的短信
命令格式:AT+CMSS=<index>
命令返回:+CMSS:<mr>
+CMS ERROR:<err>
OK
ERROR
测试结果:AT+CMSS=2
+CMSS: 204
OK
6.9AT+CNMI
命令解释:新短信提示
6.9.1命令格式:AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>]]]]
命令返回:OK
  ERROR
测试结果:AT+CNMI=3,2
  OK
6.9.2命令格式:AT+CNMI?
命令返回:+CNMI:<mode>,<mt>,<bm>,<ds>
OK
ERROR
测试结果:AT+CNMI?
  +CNMI: 3,2,0,0
  OK
6.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)
OK
ERROR
测试结果:AT+CNMI=3,2
OK
注: 这篇文章的内容多数来源于网上,对于最后的短消息提示,AT+CNMI,通过设置不同的模式,就可以得到短消息提示,但是这个命令最好在ttyUSB2上应用,应为这个端口会主动吐数据,这样当新的短信来的时候就会有数据输出。

转载地址:http://gvrvb.baihongyu.com/

你可能感兴趣的文章
一看就懂的设计模式--设计模式分类
查看>>
一看就懂的设计模式--模板方法
查看>>
一看就懂的设计模式--享元模式
查看>>
一看就懂的设计模式--策略模式
查看>>
spring Cloud 组建图
查看>>
腾讯云
查看>>
什么服务器比较好?
查看>>
阿里云+腾讯云采购季优惠攻略
查看>>
PCB设计容易出错的地方都有哪些?
查看>>
挠性电路板和刚性电路板的区别,以及柔性电路板焊接方法操作步骤
查看>>
如何做好一块PCB板,大神从以下几个方面做了论述
查看>>
学习笔记1之static
查看>>
学习笔记2之继承
查看>>
循环链表实现增、删、改、查等功能
查看>>
Android实现超链接和跑马灯
查看>>
实现二叉树先序、中序、后序遍历
查看>>
Socket客户端服务器连接
查看>>
简单字符设备驱动程序的操作步骤
查看>>
视频压缩:I帧、P帧、B帧
查看>>
视频编解码基础一
查看>>