1

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

AT+CMGD=1,4

->OK

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

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

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

有谁知道我做错了什么?

提前致谢!

4

2 回答 2

2

我使用CMGD 命令删除消息。

据我所见,CMGR 命令用于读取消息而不是删除它们。

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

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

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

编辑(因为您验证了调制解调器支持带有两个参数的 CMGD

我不知道问题是什么。我确实注意到你的 CPMS 命令给了我不同的结果,我的例子:

AT+CPMS?
+CPMS: "SM",10,10,"MT",12,35,"MT",12,35

您的没有任何存储内存字符串。我猜你实际执行的命令是:

AT+CPMS="ME"

当您切换到 ME 存储并执行 CMGL 命令时,它会列出未删除的消息吗?

于 2009-06-30T09:37:26.167 回答
0

尝试使用 "AT+CPMS="ME"" 将内存设置为 ME,然后使用 flag=4 重试删除命令。我想它会起作用的。然后它不会运行“AT+CSAS”来保存之前的设置并重试删除。我无法测试它,因为我的 ME 存储区中没有 SMS。让我知道它是否有效。

于 2020-12-23T01:57:27.670 回答