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

SIM900+Arduino执行AT+CMGL="REC UNREAD"返回302错误求助

SIM900模块搭配Arduino读取短信出现+CMS ERROR:302的解决方案

问题描述

我正尝试使用SIM900模块搭配Arduino读取短信,编写的代码如下:

Serial.println("Initializing...");
delay(1000);
SIM900.println("AT"); //Handshaking with SIM900
updateSerial();
SIM900.println("AT+CPIN?"); 
updateSerial();
SIM900.println("AT+IPR?"); 
updateSerial();
SIM900.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
updateSerial();
SIM900.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
updateSerial();
SIM900.println("AT+CREG?"); 
updateSerial();
SIM900.println("AT+CPMS=?"); 
updateSerial();
SIM900.println("AT+CSCA?"); 
updateSerial();
SIM900.println("AT+CSMS=?");
updateSerial();
SIM900.println("AT+COPS?"); 
updateSerial();
SIM900.println("AT+CFUN?");
updateSerial();  
SIM900.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
SIM900.println("AT+CNMI=2,2,0,0,0");
updateSerial();
SIM900.println("AT+CMGL=\"REC UNREAD\""); 
updateSerial();

执行代码后得到如下输出:

AT

OK
AT+CPIN?

+CPIN: READY

OK
AT+IPR?

+IPR: 0

OK
AT+CSQ

+CSQ: 14,0

OK
AT+CCID

8950201021034280272F

OK
AT+CREG?

+CREG: 2,1,"0115","2CA1"

OK
AT+CPMS=?

+CPMS: ("SM"),("SM"),("SM")

OK
AT+CSCA?

+CSCA: "+50255300222",145

OK
AT+CSMS=?

+CSMS: (0,1)

OK
AT+COPS?

+COPS: 0,0,"Claro GTM"

OK
AT+CFUN?

+CFUN: 1

OK
AT+CMGF=1

OK
AT+CNMI=2,2,0,0,0

OK
AT+CMGL="REC UNREAD"

+CMS ERROR: 302

执行AT+CMGL="REC UNREAD"指令时返回+CMS ERROR: 302,怀疑CNMI或COPS设置存在问题,寻求修复方法。

解决方案

+CMS ERROR: 302通常表示无效的内存索引或短信存储配置错误,结合你的模块输出,给出以下修复步骤:

  • 明确短信存储位置:从AT+CPMS=?的输出可知,你的SIM900模块仅支持SIM卡(SM)作为短信存储介质,执行指令AT+CPMS="SM","SM","SM",将短信的读写存储位置都指定为SIM卡,确保返回OK。
  • 调整CNMI设置:当前AT+CNMI=2,2,0,0,0会让新短信直接主动推送到串口,可能干扰AT+CMGL的读取操作。先执行AT+CNMI=0,0,0,0,0关闭主动推送,完成短信读取后再重新开启即可。
  • 重新执行读取指令:完成上述配置后,再次发送AT+CMGL="REC UNREAD",查看是否能正常返回未读短信。
  • 额外排查:如果仍报错,可先执行AT+CMGL="ALL"确认SIM卡内是否存在短信,同时检查SIM卡是否有足够的存储空间(通过AT+CPMS?查看已用/可用存储数量)。

分步验证指令

  1. 发送AT+CPMS="SM","SM","SM",确认返回OK
  2. 发送AT+CNMI=0,0,0,0,0,关闭主动推送
  3. 发送AT+CMGL="REC UNREAD",验证读取结果

内容的提问来源于stack exchange,提问作者QLands - Carlos Quiros

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:15:43