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
效果相同),但参数通常大小写敏感(如手机号需正确输入)。
掌握这些指令,基本能应对模块调试、通话、短信、联网等日常需求,具体使用时可结合模块手册进一步细化。