You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AT+CMGR命令异常:使用GSM模块读取短信时出现两个陌生号码

问题分析与解决

从你提供的AT指令日志来看,你看到的第二个带*的号码并不是额外的发件人号码,而是短信服务中心(SMSC)的地址,属于AT+CMGR响应中的标准字段。

日志字段拆解

你的+CMGR响应对应文本模式下的标准返回结构,各字段含义大致如下:

+CMGR: "<短信状态>","<发件人号码>","<别名>","<短信时间戳>",<TOOA>,<TODA>,<PID>,<DCS>,"<SMSC号码>",<TOSCA>,<短信内容长度>

其中:

  • "REC UNREAD":未读收件箱短信状态
  • "+9189******87":实际发件人号码
  • "*+9170******00*":短信服务中心(SMSC)的地址,部分模块会用*包裹该字段作为标识

解决建议

  • 只提取目标字段:在解析AT响应时,仅截取第二个双引号内的内容即可,忽略后续的SMSC字段。
  • 验证字段身份:执行AT+CSCA?命令查询当前模块配置的短信服务中心号码,对比日志中带*的号码,确认两者是否一致,以此验证该字段的属性。
  • 无需修改模块配置:大部分GSM模块在文本模式下会默认返回SMSC字段,这属于正常行为,只需调整你的响应解析逻辑即可。

内容的提问来源于stack exchange,提问作者Vishnu A S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:43:25