如何删除SIM800l中的所有短信?

问题描述

我曾经有一个SIM800l模块,我不知道具体是如何设置的,但是每次我从第一个存储位置删除一条短信时,其他短信都会移到该位置的第一条短信,始终占据存储中的第一个位置。

有谁知道如何像这样设置我的新模块?

通过这样的设置,为了删除所有短信,我只是重复发送命令AT+CMGD=1,这样我就不需要更改索引了。

解决方法

改变位置的短信听起来很奇怪,我不确定这是不是真的发生了。阅读我所有的回答,找出我认为可能的实际解释。

TL;DR:你很幸运,因为你可以通过一个命令释放你的 SMS 内存:AT+CMDA


根据AT command guide,它的语法非常简单:

AT+CMDA=<type>

其中 <type> 根据 +CMGF 设置具有不同的含义。

文本模式(在AT+CMGF=1之后):

  • "DEL READ" - 删除所有已读消息
  • "DEL UNREAD" - 删除所有未读消息
  • "DEL SENT" - 删除所有已发送的短信
  • "DEL UNSENT" - 删除所有未发送的短信
  • "DEL INBOX" - 删除所有收到的短信
  • "DEL ALL" - 删除所有短信

PDU 模式(在AT+CMGF=0 之后,这实际上不是必需的,因为它是默认值):

  • 1 - 删除所有已读消息
  • 2 - 删除所有未读消息
  • 3 - 删除所有已发送的短信
  • 4 - 删除所有未发送的短信
  • 5 - 删除所有收到的短信
  • 6 - 删除所有短信

您需要是提供

AT+CMDA="DEL ALL"

如果您在文本模式下操作,或者

AT+CMDA=6

如果您在 PDU 模式下运行。

更好,您可以通过发出

来摆脱阅读消息
AT+CMDA="DEL READ"

如果您在文本模式下操作,或者

AT+CMDA=1

如果您在 PDU 模式下运行。我怀疑后者是您实际用来提供的命令。