删除短信时,不会删除它们

时间:2009-06-30 09:05:07

标签: sms command gsm at-command

我将GSM / GPRS调制解调器连接到我的微控制器,一切正常。 当我想删除ME存储中的所有消息时,我应该使用以下命令:

AT+CMGD=1,4

->OK

deleteflag'4'表示我想删除所有消息,并且标记'1'被覆盖。但是,当我检查存储空是否为空时,我得到:

AT+CPMS?
+CPMS: 8,100,8,100,8,100

表示内存仍然被占用且没有消息被删除。

有谁知道我做错了什么?

提前致谢!

2 个答案:

答案 0 :(得分:2)

我使用CMGD command删除邮件。

据我所知,CMGR command用于阅读邮件而不是删除邮件。

编辑(因为您使用的是CMGD命令)

您的调制解调器可能不支持CMGD命令的多个参数 - 我的西门子调制解调器不支持(或者如果它没有在AT命令集文档中列出它)。我没有删除单个命令中的所有消息,而是使用CMGL来获取读取消息,解析结果以获取索引,并使用CMGD一次删除一个。如果你找到另一种我感兴趣的方式。

使用AT + CMGD =?命令查找参数的有效值。

编辑(因为您验证了调制解调器支持带有两个参数的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。让我知道它是否有效。