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

How to delete all SMS from SIM800l?

我曾经有一个 SIM800l 模块,但我不知道我是如何设置的,但是每次我从第一个内存位置删除一条短信时,其他短信都是上移到第一条短信的位置,一直占据存储的第一个位置

有谁知道如何设置我的新模块吗?

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

SMS 消息改变位置听起来很奇怪,我不确定它是否真的发生了。阅读我所有的回答,找出我认为可能是实际解释的内容。

TL;DR:你很幸运,因为你可以通过一个命令释放你的短信内存: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 模式下操作。我怀疑后者是您实际用来提供的命令。