如何用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

相关推荐

  • 电脑卡死如何强制关机?

    shutdown命令用于安全关闭、重启或休眠计算机,常用参数:/s关机、/r重启、/t设置倒计时(秒)、/c添加提示信息,shutdown /s /t 60表示60秒后关机。

    2025年7月12日
    11500
  • 主要原因是什么?

    主要原因分析的核心在于识别问题产生的关键驱动因素,通常涉及多个层面,如内部管理疏漏、外部环境变化、资源配置不当或决策失误等,深入剖析这些根本动因是制定有效解决方案的基础。

    2025年8月8日
    7600
  • 安全数据大脑如何实现海量安全数据的智能分析与高效防护能力体系?

    安全数据大脑是面向数字化时代复杂安全威胁而构建的智能化安全中枢系统,其核心在于通过汇聚多源异构安全数据,融合人工智能、大数据分析、知识图谱等先进技术,实现对安全态势的全面感知、精准研判、智能响应和持续优化,为组织提供从被动防御到主动免疫的安全能力升级,在当前网络攻击手段日益复杂、数据安全风险持续加剧的背景下,传……

    2025年11月4日
    6300
  • CAD命令行自由移动技巧

    在CAD中拖动命令窗口标题栏至目标位置松开即可,窗口可浮动放置于界面任意区域,或吸附到屏幕边缘固定。

    2025年7月12日
    10100
  • 如何退出CMD和系统安全模式?

    退出安全模式中的命令提示符窗口若您在Windows安全模式下打开了命令提示符(如通过“带命令提示符的安全模式”启动),只需关闭CMD窗口:在命令提示符窗口中输入 exit 并按回车键,窗口将立即关闭,但系统仍处于安全模式,返回桌面后,按 Win + R 打开运行框,输入 msconfig 并回车,进入下一步操作……

    2025年7月2日
    10000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信