常用基本AT指令
命令
作用
AT
测试连接是否正确
ATE0
关闭回显。程序初始化AT部分首先关闭回显。
ATE1
打开回显。使用超级终端测试命令时打开。
AT+CGMI
得到厂商信息
AT+CGMR
得到手机版本号
AT+CGSN
得到手机序列号(IMEI)
AT+CIMI
得到手机IMSI号码
AT+CSCS
获取、设置手机当前字符集。可设置为GSM或UCS2
AT+CBC
获取手机电量
AT+CCLK
获取设置手机时钟
AT+CNUM
机身号码。分为线路一和线路二
AT+CSQ
当前信号
AT+COPS
网络营运商
AT+CSCA
短信中心号码
以上这些指令都用于与手机连接的时候初始化用。取得手机IMEI及IMSI可以给使程序支持更多的手机连接
并且保持数据独立。
短信部分
命令
作用
AT+CPMS
选择短信储存地点。可选择ME(SIM卡)和MT(机身)
AT+CMGL
列出指定状态的短信息的PDU代码
AT+CMGR
列出指定序号的短信息PDU代码
AT+CMGS
发送短信
AT+CMGD
删除指定的短信
AT+CMGF
短信格式。分为Text模式和PDU模式
AT+CNMI
设置新短消息通知电脑端
AT+CSCA
短信中心
以上命令是短消息部分最经常使用的命令。
一、一般命令
AT+CGMI给出模块厂商的标识。
AT+CGMM获得模块标识。这个命令用来得到支持的频带(GSM900,DCS1800或PCS1900)。当模块有多频带时,回应可能是不同频带的结合。
AT+CGMR获得改订的软件版本。
AT+CGSN获得GSM模块的IMEI(国际移动设备标识)序列号。
AT+CSCS选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。ME于是可以转换每一个输入的或显示的字母。这个是用来发送、读取或者撰写短信。
AT+WPCS设定电话簿状态。这个特殊的命令报告通过TE电话簿所用的状态的ME。ME于是可以转换每一个输入的或者显示的字符串字母。这个用来读或者写电话簿的入口。
AT+CIMI获得IMSI。这命令用来读取或者识别SIM卡的IMSI(国际移动签署者标识)。在读取IMSI之前应该先输入PIN(如果需要PIN的话)。
AT+CCID获得SIM卡的标识。这个命令使模块读取SIM卡上的EF-CCID文件。
AT+GCAP获得能力表。(支持的功能)
A/ 重复上次命令。只有A/命令不能重复。这命令重复前一个执行的命令。
AT+CPOF关机。这个特殊的命令停止GSM软件堆栈和硬件层。命令AT+CFUN=0的功能与+CPOF相同。
AT+CFUN设定电话机能。这个命令选择移动站点的机能水平。
AT+CPAS返回移动设备的活动状态。
AT+CMEE报告移动设备的错误。这个命令决定允许或不允许用结果码“+CMEERROR:<xxx>”或者“+CMSERROR:<xxx>”代替简单的“ERROR”。
AT+CKPD小键盘控制。仿真ME小键盘执行命令。
AT+CCLK时钟管理。这个命令用来设置或者获得ME真实时钟的当前日期和时间。
AT+CALA警报管理。这个命令用来设定在ME中的警报日期/时间。(闹铃)
AT+CRMP铃声旋律播放。这个命令在模块的蜂鸣器上播放一段旋律。有两种旋律可用:到来语音、数据或传真呼叫旋律和到来短信声音。
AT+CRSL设定或获得到来的电话铃声的声音级别。
二、呼叫控制命令
ATD拨号命令。这个命令用来设置通话、数据或传真呼叫。
ATH挂机命令。
ATA接电话。
AT+CEER扩展错误报告。这个命令给出当上一次通话设置失败后中断通话的原因。
AT+VTD给用户提供应用GSM网络发送DTMF(双音多频)双音频。这个命令用来定义双音频的长度(默认值是300毫秒)。
AT+VTS给用户提供应用GSM网络发送DTMF双音频。这个命令允许传送双音频。
ATDL重拨上次电话号码。
AT%Dn数据终端就绪(DTR)时自动拨号。
ATS0自动应答。
AT+CICB来电信差。
AT+CSNS单一编号方案。
AT+VGR
AT+VGT增益控制。这个命令应用于调节喇叭的接收增益和麦克风的传输增益。
AT+CMUT麦克风静音控制。
AT+SPEAKER喇叭/麦克风选择。这个特殊命令用来选择喇叭和麦克风。
AT+ECHO回音取消。
AT+SIDET侧音修正。
AT+VIP初始化声音参数。
AT+DUI用附加的用户信息拨号。
AT+HUI用附加的用户信息挂机。
AT+RUI接收附加用户信息。
三、网络服务命令
AT+CSQ信号质量。
AT+COPS服务商选择。
AT+CREG网络注册。获得手机的注册状态。
AT+WOPN读取操作员名字。
AT+CPOL优先操作员列表。
四、安全命令
AT+CPIN输入PIN。
AT+CPIN2输入PIN2。
AT+CPINCPIN的剩余的尝试号码。
AT+CLCK设备锁。
AT+CPWD改变密码。
五、电话簿命令
AT+CPBS选择电话簿记忆存储。
AT+CPBR读取电话簿表目。
AT+CPBF查找电话簿表目。
AT+CPBW写电话簿表目。
AT+CPBP电话簿电话查询。
AT+CPBN电话簿移动动作。这个特殊命令使电话簿中的条目前移或后移(按字母顺序)
AT+CNUM签署者号码。
AT+WAIP防止在下一次重起时初始化所有的电话簿。
AT+WDCP删除呼叫电话号码。
AT+CSVM设置语音邮件号码。
六、短消息命令
AT+CSMS选择消息服务。支持的服务有GSM-MO、SMS-MT、SMS-CB。
AT+CNMA新信息确认应答。
AT+CPMS优先信息存储。这个命令定义用来读写信息的存储区域。
AT+CMGF优先信息格式。执行格式有TEXT方式和PDU方式。
AT+CSAS保存设置。保存+CSAS和+CSMP的参数。
AT+CRES恢复设置。
AT+CSDH显示文本方式的参数。
AT+CNMI新信息指示。这个命令选择如何从网络上接收短信息。
AT+CMGR读短信。信息从+CPMS命令设定的存储器读取。
AT+CMGL列出存储的信息。
AT+CMGS发送信息。
AT+CMGW写短信息并存储。
AT+CMSS从存储器中发送信息。
AT+CSMP设置文本模式的参数。
AT+CMGD删除短信息。删除一个或多个短信息。
AT+CSCA短信服务中心地址。
AT+CSCB选择单元广播信息类型。
AT+WCBM单元广播信息标识。
AT+WMSC信息状态(是否读过、是否发送等等)修正。
AT+WMGO信息覆盖写入。
AT+WUSS不改变SMS状态。在执行+CMGR或+CMGL后仍保持UNREAD。
七、追加服务命令
AT+CCFC呼叫继续。
AT+CLCK呼叫禁止。
AT+CPWD改变追加服务密码。
AT+CCWA呼叫等待。
AT+CLIR呼叫线确认限制。
AT+CLIP呼叫线确认陈述。
AT+COLP联络线确认陈述。
AT+CAOC费用报告。
AT+CACM累计呼叫计量。
AT+CAMM累计呼叫计量最大值。
AT+CPUC单价和货币表。
AT+CHLD呼叫相关的追加服务。
AT+CLCC列出当前的呼叫。
AT+CSSN追加服务通知。
AT+CUSD无组织的追加服务数据。
AT+CCUG关闭的用户组。
AT命令交互之-COPS选择营运商
模块默认一般都可以自动搜网注册,比如移动的就注册到移动,联通的就注册到联通。但是在不同的国家多网覆盖的使用情况下,有时候就算使用了自动搜网注册网络,也会出现注册不上网络的现象,这时候就需要使用手动搜网然后选择一个运营商进行强制注册。
1.AT+COPS命令说明
image.png
-
上面格式里面,stat这个值比较重要,他会直接告诉我们哪些运营商可用。
-
<stat>
-
0 未知
-
1 可用
-
2 当前
-
3 禁用
-
<oper>
-
运营商名称,根据 format 给出
-
<mode>
-
0 自动注册 (忽略<format> <oper> 参数)
-
1 手动注册
-
2 强制注销
-
3 只设置格式
-
4 先手动再自动
-
<format>
-
0 长字符格式<oper>
-
1 短字符格式<oper>
-
2 数字格式<oper>
-
<AcT> 接入技术
-
0 GSM
-
1 GSM COMPACT
-
2 UTRAN
-
1. 配置命令选择并注册 GSM 网络营运商。<mode>设置 ME 是自动选择营运商<oper>,还是使用该命
-
令强制选择营运商<oper>。
-
当<mode>=0 时,ME 将自动尝试选择可使用的运营商。
-
当<mode>=1 时,ME 将强制注册选择的<oper>运营商,若该运营商无效则当前 ME 不会搜索
-
其他可用运营商,直到<mode>=0 时 ME 才会重新注册网络。如果 ME 重启后仍然在<mode>=1
-
下且没有 RPLMN 的话,ME 会保持在不注册网络的状态直到使用命令改变成自动注册模式。
-
当<mode>=4 时,若手动选择运营商不可用,ME 会自动选择当前网络中可用运营商继续尝试注
-
册。
-
2. 该命令设置成功后会自动保存。
2.AT+COPS=?搜网
1.模块未插入SIM卡
我们想使用AT+COPS=?进行搜网,这时会有两种情况,一种是模块没插入卡,返回如下:
image.png
如上面所示,没插卡的时候返回的运营stat都是1,都是可以用运营商。
2.模块插入指定运营商的SIM卡
现在插入电信卡,在进行搜网操作
image.png
可以看到虽然返回了三个运营商,但是只有电信的stat是1,其他两个stat都是3,forbidden。
3.AT+COPS=设置网络
1.手动设网,已知要设置的网络
-
1.强制注销网络 AT+COPS=2,2
-
2.设置要使用的网络 AT+COPS=1,2,“46001”,2
-
3.设置查询格式 AT+COPS=3,2 数字型
-
4.查询当前运营商 AT+COPS?
image.png
2.手动设网,未知要设置的网络
-
1.设置格式 AT+COPS=3,0 长字符型
-
2.查询可用运营商 AT+COPS=?
-
3.强制注销网络 AT+COPS=2,2
-
4.设置要使用的网络 AT+COPS=1,2,“46001”,2
-
5.设置查询格式 AT+COPS=3,2 数字型
-
6.查询当前运营商 AT+COPS?
image.png
联通2G基本退网了
查询命令:AT+CGREG?
返回:+CGREG:<n>,<stat>[,<lac>,<ci>] OK
参数 取值 说明
n [0] 禁用网络注册非请求结果码+CGREG:
[1] 启用网络注册非请求结果码
[2] 启用网络注册和位置信息非请求结果码+CGREG:<stat>[,<lac>,<ci>]
<stat> [0] 未注册;ME 当前没有搜索注册业务的新运营商
[1] 已注册,本地网
[2] 未注册,但ME 正在搜索注册业务的新运营商
[3] 注册被拒绝
[4] 未知
[5] 已注册,漫游
<lac> 字符型;2 位十六进制位置区代码(比如:00C3相当于十进制中的195)
<ci> 字符型;2 位十六进制小区编号