我将GSM / GPRS调制解调器连接到我的微控制器,一切正常。 当我想删除ME存储中的所有消息时,我应该使用以下命令:
AT+CMGD=1,4
->OK
deleteflag'4'表示我想删除所有消息,并且标记'1'被覆盖。但是,当我检查存储空是否为空时,我得到:
AT+CPMS?
+CPMS: 8,100,8,100,8,100
表示内存仍然被占用且没有消息被删除。
有谁知道我做错了什么?
提前致谢!
答案 0 :(得分:2)
我使用CMGD command删除邮件。
据我所知,CMGR command用于阅读邮件而不是删除邮件。
您的调制解调器可能不支持CMGD命令的多个参数 - 我的西门子调制解调器不支持(或者如果它没有在AT命令集文档中列出它)。我没有删除单个命令中的所有消息,而是使用CMGL来获取读取消息,解析结果以获取索引,并使用CMGD一次删除一个。如果你找到另一种我感兴趣的方式。
使用AT + CMGD =?命令查找参数的有效值。
我不知道问题是什么。 我注意到你的CPMS命令给我的不同结果,我的例子:
AT+CPMS?
+CPMS: "SM",10,10,"MT",12,35,"MT",12,35
您的没有任何存储内存字符串。我猜你实际做的命令是:
AT+CPMS="ME"
切换到ME存储并执行CMGL命令时是否列出了未删除的消息?
答案 1 :(得分:0)
尝试使用 "AT+CPMS="ME"" 将内存设置为 ME,然后使用 flag=4 重试删除命令。我想它会起作用。然后它不会运行“AT+CSAS”来保存先前的设置并重试删除。我无法测试它,因为我的 ME 存储区中没有 SMS。让我知道它是否有效。