1

我以前有一个SIM800l模块,不知道具体是怎么设置的,但是每次我从第一个内存位置删除一条短信,其他短信都会上移到第一条短信的位置,一直占据位置号一个在存储中。

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

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

4

1 回答 1

1

SMS消息改变位置听起来真的很奇怪,我不确定这是真的发生了什么。阅读我所有的答案,以发现我认为可能是实际解释的内容。

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


根据AT 命令指南,它的语法非常简单:

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 模式下运行。我怀疑后者是您实际用来提供的命令。

于 2021-02-07T15:15:24.607 回答