我以前有一个SIM800l模块,不知道具体是怎么设置的,但是每次我从第一个内存位置删除一条短信,其他短信都会上移到第一条短信的位置,一直占据位置号一个在存储中。
有谁知道如何像这样设置我的新模块?
通过这样的设置,为了删除所有短信,我只是重复发送命令AT+CMGD=1
,这样我就不需要更改索引。
我以前有一个SIM800l模块,不知道具体是怎么设置的,但是每次我从第一个内存位置删除一条短信,其他短信都会上移到第一条短信的位置,一直占据位置号一个在存储中。
有谁知道如何像这样设置我的新模块?
通过这样的设置,为了删除所有短信,我只是重复发送命令AT+CMGD=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 模式下运行。我怀疑后者是您实际用来提供的命令。