AT指令发送短信格式是嵌入式开发、物联网设备通信以及传统调制解调器操作中的核心知识点,它通过特定的指令集控制设备完成短信的创建、编辑、发送及管理等功能,以下从基础概念、指令分类、操作流程及注意事项等方面展开说明,帮助读者全面掌握其应用方法。

AT指令基础与短信相关核心指令
AT指令(Attention指令)是调制解调器与终端设备通信的标准化语言,每条指令以“AT”开头,以回车符(r)结束,设备返回响应信息以确认指令执行状态,在短信功能中,需重点掌握以下核心指令:
初始化与模式设置
- AT:测试指令,用于验证设备连接是否正常,响应“OK”表示设备就绪。
- AT+CMGF:设置短信模式。
- 参数:
0(PDU模式,需手动编码短信内容与号码);1(文本模式,支持直接发送ASCII字符,推荐初学者使用)。 - 示例:
AT+CMGF=1r(切换至文本模式,响应“OK”)。
- 参数:
短信发送指令
- AT+CMGS:发送短信核心指令,需指定目标号码与短信内容。
- 格式:
AT+CMGS="手机号码"r后以Ctrl+Z(ASCII码26)结束发送。 - 示例:
AT+CMGS="13800138000"r Hello, this is a test message. (按下Ctrl+Z) - 响应:设备返回“+CMGS: x”(x为短信序号)及“OK”表示发送成功。
- 格式:
短信管理指令
- AT+CMGL:列出已存储短信。
- 参数:
0(未读)、1(已读)、2(未发送)、4(全部)。 - 示例:
AT+CMGL=1r(列出已读短信,返回短信列表)。
- 参数:
- AT+CMGD:删除短信。
- 格式:
AT+CMGD=短信索引,0(删除单条);AT+CMGD=1,4(删除从索引1开始的所有短信)。
- 格式:
短信发送完整操作流程(以文本模式为例)
设备初始化
首先通过串口工具连接调制解调器,发送AT测试指令,确认设备响应正常,若未响应,需检查波特率(常见9600/115200)、数据位、停止位等串口参数是否匹配。
切换至短信模式
为确保指令兼容性,建议优先使用文本模式:
AT+CMGF=1r
若需发送中文等非ASCII字符,需确保设备支持UTF-8编码,或切换至PDU模式(需对短信内容进行Unicode编码)。

输入发送指令
输入目标手机号码(需包含国家代码,如中国为+86):
AT+CMGS="+8613800138000"r
等待设备返回“>”提示符后,输入短信内容。
确认并发送 后,按下Ctrl+Z(或串口工具中的“发送结束符”按钮),设备开始发送短信,并返回状态信息。
异常处理
若返回“ERROR”,需检查:
- 手机号码格式是否正确(如缺少“+”或国家代码); 是否包含非法字符(如PDU模式下的编码错误);
- 设备是否欠费或信号异常。
PDU模式与文本模式对比
| 特性 | 文本模式 | PDU模式 |
|---|---|---|
| 易用性 | 高,直接输入ASCII字符,无需编码 | 低,需手动编码短信内容、号码及协议头 |
| 支持字符 | ASCII字符(英文、数字、符号),部分设备支持中文 | 支持所有Unicode字符(中文、 Emoji等) |
| 适用场景 | 简单英文短信、初学者开发 | 多语言短信、复杂协议(如短信 concatenation) |
| 编码示例 | AT+CMGS="123456"rHellor(Ctrl+Z) |
需将“Hello”转换为Unicode编码(0048000…),拼接SMSC号码、目标号码等 |
注意事项
- 串口参数配置:确保波特率、数据位(8位)、停止位(1位)、校验位(无校验)与设备一致,否则指令可能无法识别。
- 短信长度限制:单条短信长度通常为140字节(文本模式)或160字符(GSM 7-bit编码),超长短信需自动拆分(需设备支持+CSMP参数设置)。
- SIM卡状态:发送前需确认SIM卡已正常注册网络(通过
AT+CREG?查询,响应+CREG: 1表示已注册)。 - 指令间隔:每条AT指令发送后需等待设备响应(通常100-500ms),避免连续发送导致指令丢失。
相关问答FAQs
Q1:发送中文短信时,AT指令应如何设置?
A:若设备支持中文,可直接在文本模式下发送,但需确保串口工具编码格式为UTF-8,且短信内容长度不超过70字符(Unicode编码下,1汉字=2字节),若出现乱码,可切换至PDU模式,将中文内容转换为Unicode编码(如“你好”转换为“0048000E00A0”),再拼接PDU串发送。

Q2:为什么发送短信后设备返回“+CMS ERROR: 30”?
A:错误码“30”通常表示“短信存储空间不足”,可通过AT+CMGL=4查询短信存储状态,或使用AT+CMGD删除旧短信释放空间,若SIM卡未插入、欠费或信号弱,也可能导致类似错误,需逐一排查硬件与网络状态。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/71274.html