Skip to content

踩坑Robotics Stack Exchange2013-12-31

SIM900A 如何用 AT 命令获取短信发送号码? ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:AT command in SIM900A GSM/GPRS module to find out originating address of an SMS(Robotics Stack Exchange #1743)

状态:已解决

问题 ​

提问者使用 SIM900A 接收短信,AT+CNMI 只能提示有新短信,无法得到发送方号码;知道 AT+CMGL=<stat>[,<mode>] 可能包含 oa originating address,但不清楚返回格式。

环境 ​

嵌入式控制器 / 串口通信

解决办法 ​

  1. 用 AT+CMGF? 查看短信模式:0 为 PDU mode,1 为 Text mode。
  2. 如果是 Text mode,用 AT+CMGL="ALL" 列出所有短信;返回的 +CMGL 行中第三个字段如 "+85291234567" 就是短信来源号码。
  3. 如果是 PDU mode,用 AT+CMGL=4 列出所有短信,再按 PDU 数据解析来源地址。
  4. 可选 MODE 参数:0 为普通读取,1 为不改变指定短信记录状态。

原问题作者:shailendra;采纳答案作者:EDDY74。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #1743:AT command in SIM900A GSM/GPRS module to find out originating address of an SMS访问 2026-10-22