代码之家  ›  专栏  ›  技术社区  ›  mohammad bagher Malekhosseini

使用sim800l。如何删除第一条短信并将存储在存储器中的下一条短信移动到第一个索引

  •  0
  • mohammad bagher Malekhosseini  · 技术社区  · 3 年前

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

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

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

    0 回复  |  直到 3 年前
        1
  •  1
  •   Roberto Caboni Prince Rabadiya    2 年前

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

    TL;博士 :你很幸运,因为你可以用一个命令释放你的短信内存: AT+CMGDA .


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

    AT+CMGDA=<type>
    

    哪里 <type> 根据不同的含义 +CMGF 设置。

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

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

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

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

    你需要什么 旨在提供

    AT+CMGDA="DEL ALL"
    

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

    AT+CMGDA=6
    

    如果您在PDU模式下操作。

    更好 ,你可以摆脱只是 阅读 通过发布消息

    AT+CMGDA="DEL READ"
    

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

    AT+CMGDA=1
    

    如果您在PDU模式下操作。我怀疑后者是你实际使用的命令。

    推荐文章