AT 指令是控制蜂窝通信模块(2G/3G/4G/5G 等)的通用命令,不同模块的指令略有差异,但核心指令基本一致。以下是最常用的 AT 指令分类及功能说明,方便快速参考:
一、基础测试指令(检查模块状态)
指令 |
功能说明 |
示例响应 |
AT |
最基础的测试指令,用于确认模块与串口连接是否正常(“心跳检测”) |
成功返回 OK |
AT+GMI |
查询模块厂商信息(如华为、SIMCom 等) |
例如 SIMCOM_Ltd |
AT+GMM |
查询模块型号(确认是 2G/4G/5G 模块) |
例如 SIM800L (2G)、EC20 (4G) |
AT+GSN |
查询模块的 IMEI 号(模块唯一标识,类似 “身份证号”) |
例如 861234567890123 |
AT+CGMR |
查询模块固件版本(用于确认是否需要升级固件) |
例如 Revision:1418B05SIM800L15 |
二、SIM 卡与运营商相关指令
指令 |
功能说明 |
示例响应 |
AT+CPIN? |
查询 SIM 卡状态(是否需要 PIN 码解锁) |
+CPIN: READY (正常可用);+CPIN: SIM PIN (需输入 PIN) |
AT+CPIN="1234" |
输入 SIM 卡 PIN 码(默认通常是 1234,具体以 SIM 卡为准) |
成功返回 OK |
AT+COPS? |
查询当前注册的运营商(移动 / 联通 / 电信) |
+COPS: 0,0,"China Mobile" (中国移动) |
AT+COPS=? |
搜索附近可用的运营商(返回所有可接入的网络) |
例如 +COPS: (2,"China Mobile","CMCC","46000"),... |
AT+CSIM=... |
执行 SIM 卡内部操作(如读取 SIM 卡存储的联系人,需按协议格式输入参数) |
成功返回操作结果代码 |
三、信号与网络状态指令
指令 |
功能说明 |
示例响应 |
AT+CSQ |
查询信号强度(关键指标,决定通信稳定性) |
+CSQ: 28,0 (前值 0-31,越大越好;31 最强,<10 信号差,99 无信号) |
AT+CGATT? |
查询是否附着到数据网络(GPRS/4G/5G,上网必备) |
+CGATT: 1 (已附着,可上网);0 (未附着,无法上网) |
AT+CGREG? |
查询是否注册到移动网络(2G/4G 的注册状态) |
+CGREG: 0,1 (注册成功);0,2 (注册失败) |
AT+CEREG? |
查询是否注册到 4G LTE 网络(仅 4G/5G 模块支持) |
+CEREG: 0,1 (注册成功) |
AT+CNRV? |
查询 5G NR 信号状态(仅 5G 模块支持) |
+CNRV: 1,5,-85,3 (表示 5G 信号正常) |
四、通话相关指令
指令 |
功能说明 |
示例响应 |
ATD10086; |
拨打指定号码(结尾必须加; ,号码替换为实际号码) |
拨号中返回 OK ,接通后返回 +CIEV: "CALL",1 |
ATH |
挂断当前通话(无论是呼出还是呼入) |
成功返回 OK |
ATA |
接听来电(当模块收到来电时使用) |
成功返回 OK |
AT+CLCC |
查询当前通话状态(是否在通话、通话类型等) |
+CLCC: 1,1,4,0,0,"10086",128 (表示正在通话) |
AT+VTS="123" |
通话中发送 DTMF 信号(类似手机拨号键盘输入 123) |
成功返回 OK |
五、短信相关指令(文本模式,新手常用)
指令 |
功能说明 |
示例响应 |
AT+CMGF=1 |
设置短信模式为 “文本模式”(简单直观,适合发送普通文字) |
成功返回 OK |
AT+CMGS="13800138000" |
指定接收短信的手机号(输入后返回> ,等待输入短信内容) |
> (提示输入内容) |
输入内容后按Ctrl+Z |
发送短信(Ctrl+Z 是结束符,ASCII 码为 26) |
成功返回 +CMGS: 123 (123 是短信序号)和OK |
AT+CMGR=1 |
读取第 1 条短信(需先知道短信存储位置和序号) |
返回短信内容、发送者、时间等 |
AT+CMGD=1 |
删除第 1 条短信 |
成功返回 OK |
AT+CSCA? |
查询短信中心号码(必须正确,否则无法发短信,由运营商提供) |
+CSCA: "+8613800210500",145 (上海移动短信中心) |
六、数据传输相关指令(联网 / TCP/UDP)
指令 |
功能说明 |
示例响应 |
AT+CGDCONT=1,"IP","CMNET" |
设置 APN(接入点名称,移动用 CMNET,联通 UNINET,电信 CTNET) |
成功返回 OK |
AT+NETOPEN |
打开数据网络连接(部分模块用此指令,其他可能用AT+CGACT=1,1 ) |
+NETOPEN: 0 (成功) |
AT+IPSTART="TCP","123.45.67.89",8080 |
建立 TCP 连接(参数:协议、服务器 IP、端口) |
+IPSTART: 0 (连接成功) |
AT+IPSEND=5 |
发送指定长度的数据(例如 5 字节,输入后返回> ,再输入数据) |
> (提示输入数据),发送后返回OK |
AT+IPRECV=100 |
接收数据(最多接收 100 字节) |
返回接收的内容和长度 |
AT+IPSHUT |
关闭当前 TCP/UDP 连接 |
成功返回 OK |
AT+NETCLOSE |
关闭数据网络(断开与基站的连接) |
成功返回 OK |
七、其他实用指令
指令 |
功能说明 |
示例响应 |
AT+CFUN? |
查询模块功能模式(1 = 正常模式,0 = 最小功能模式) |
+CFUN: 1 (正常工作) |
AT+CFUN=1,1 |
重启模块(相当于 “热重启”,解决临时故障) |
模块重启后返回 OK |
AT+CCLK? |
查询模块当前时间(由网络同步,需注册到网络) |
+CCLK: "23/10/01,12:34:56+08" (年月日时分秒 + 时区) |
AT+CSQ=? |
查询信号强度的范围(确认模块是否支持该指令) |
+CSQ: (0-31,99) |
注意事项
- 所有指令必须以 “回车”(\r)结尾,模块才会识别(串口工具中通常按 Enter 键自动添加)。
- 不同品牌模块可能扩展了专属指令(如华为模块的
AT^SYSCFG
设置网络模式),需参考对应模块的 AT 指令手册。
- 指令不区分大小写(如
at
和AT
效果相同),但参数通常大小写敏感(如手机号需正确输入)。
掌握这些指令,基本能应对模块调试、通话、短信、联网等日常需求,具体使用时可结合模块手册进一步细化。