如何用AT指令接收短信?

at指令接收短信

在现代通信技术中,AT指令集是一种广泛应用于调制解调器和嵌入式系统的命令语言,用于控制设备的功能,通过AT指令接收短信是移动通信模块(如GSM/GPRS模块)的常见应用之一,本文将详细介绍AT指令接收短信的基本原理、常用指令、操作流程及注意事项,帮助读者快速掌握这一技术。

at指令接收短信

AT指令基础

AT指令(ATtention指令)起源于Hayes调制解调器,后成为行业标准,指令以“AT”开头,以回车符(r)例如“AT+CMGF”用于设置短信模式,接收短信主要涉及以下指令:

  • AT+CMGF:设置短信模式(0=PDU模式,1=文本模式)。
  • AT+CMGL:列出存储的短信。
  • AT+CMGR:读取指定位置的短信。
  • AT+CMGD:删除指定位置的短信。

短信模式选择

接收短信前需选择合适的模式,PDU模式功能更强大但复杂,文本模式简单易用。

文本模式(推荐初学者使用)

AT+CMGF=1  

模块返回“OK”后,进入文本模式,短信内容可直接显示为可读字符。

PDU模式

at指令接收短信

AT+CMGF=0  

PDU模式需解析十六进制编码,支持更多功能(如中文短信),但计算复杂。

接收短信的完整流程

步骤1:列出短信列表
使用AT+CMGL指令查看所有短信,需指定列表类型(0=未读,1=已读,2=未发送,3=已发送,4=全部)。

AT+CMGL=4  

模块返回类似以下信息:

+CMGL: 1,"REC READ","+8613800138000",,"23/05/01,12:30:30+32"  
Hello, this is a test message.  
OK  

“1”为短信索引,“REC READ”表示已接收并已读。

步骤2:读取指定短信
通过AT+CMGR指令读取索引为“1”的短信:

at指令接收短信

AT+CMGR=1  
```  与`AT+CMGL`类似,但仅显示单条短信。  
**步骤3:删除短信(可选)**  
读取后可使用`AT+CMGD`删除短信,例如删除索引为“1”的短信:  

AT+CMGD=1


#### 四、常见问题及解决方法  
1. **无短信返回**  
   - 检查SIM卡是否插入正确,是否有信号。  
   - 确认短信存储位置(如手机或SIM卡),使用`AT+CPMS`指令切换存储位置。  
2. **PDU模式解析错误**  
   - 确保PDU编码格式正确,可使用在线工具解码。  
   - 检查模块是否支持当前短信编码(如UCS2或GSM)。  
#### 五、高级应用  
1. **新短信到达通知**  
   启用新短信提示功能:  

AT+CNMI=2,1


   当有新短信时,模块会主动返回`+CMTI: "SM",2`,2”为短信索引。  
2. **自动读取新短信**  
   结合`AT+CNMI`和`AT+CMGR`,可实现自动读取新短信的功能。  
#### 六、指令参考表  
| 指令          | 功能描述                     | 示例                     |  
|---------------|----------------------------|-------------------------|  
| AT+CMGF=1     | 设置文本模式                 | AT+CMGF=1               |  
| AT+CMGL=4     | 列出所有短信                 | AT+CMGL=4               |  
| AT+CMGR=1     | 读取索引为1的短信            | AT+CMGR=1               |  
| AT+CMGD=1     | 删除索引为1的短信            | AT+CMGD=1               |  
| AT+CNMI=2,1   | 启用新短信到达通知           | AT+CNMI=2,1             |  
#### 七、注意事项  
1. 指令大小写不敏感,但需以“AT”开头,回车符结尾。  
2. 不同模块的指令可能略有差异,需参考具体模块手册。  
3. 高频操作短信可能导致存储空间不足,需定期清理。  
---
### 相关问答FAQs  
**Q1: 如何区分短信的存储位置(手机或SIM卡)?**  
A1: 使用`AT+CPMS`指令查看或切换存储位置,`AT+CPMS="SM","SM","SM"`表示使用SIM卡存储,`AT+CPMS="ME","ME","ME"`表示使用模块内部存储,可通过`AT+CPMS?`查询当前存储状态。  
**Q2: PDU模式下如何解析中文短信?**  
A2: 中文短信通常采用UCS2编码(16位),需将PDU字符串按每4位转换为一个Unicode字符,PDU中的“4F60597D”对应“你好”,可使用Python等编程语言或在线工具辅助解码。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/71174.html

(0)
酷番叔酷番叔
上一篇 2025年12月13日 17:19
下一篇 2025年12月13日 17:22

相关推荐

  • 如何快速掌握3D扫描命令完整流程?

    准备扫描环境与设备,执行扫描获取点云数据,经过去噪、配准、融合等处理生成网格模型,最终优化并输出可用3D模型文件。

    2025年8月8日
    17300
  • 命令行换行是什么?

    命令行换行是一种在终端中将过长的单条命令拆分成多行书写以提高可读性的技术,通过在行末添加特定符号(如反斜杠\或插入号^),系统会将后续行视为同一命令的连续部分,执行时仍作为整体处理。

    2025年8月4日
    18900
  • 国内DDos高防IP搭建方法及步骤详解?

    购买高防IP服务,配置转发规则与源站信息,修改DNS解析至高防IP,最后测试连通性。

    2026年3月3日
    10300
  • 大全,具体包含哪些重点内容?

    安全教育日作为提升全民安全素养的重要载体,内容涵盖生产生活各领域,旨在通过系统化、场景化的教育,让安全意识深入人心、安全技能成为本能,其核心内容可围绕“风险识别—隐患排查—应急处置—习惯养成”的逻辑展开,覆盖校园、交通、消防、网络、居家、社会等多个维度,构建全方位的安全防护体系,在校园安全领域,重点聚焦青少年成……

    2025年10月18日
    13900
  • 怎么关闭开放的端口命令

    在网络安全管理中,开放端口可能成为系统入侵的入口,及时关闭不必要的端口是提升安全性的重要措施,不同操作系统(如Windows、Linux、macOS)关闭端口的方式略有差异,主要涉及防火墙规则配置和进程终止两类方法,本文将详细介绍各系统中关闭开放端口的命令及操作步骤,帮助用户有效管理端口安全,Windows系统……

    2025年8月28日
    21500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信