【问题标题】:AT+CMGS returns ERRORAT+CMGS 返回错误
【发布时间】:2014-02-26 16:04:17
【问题描述】:

我正在使用 SIM900 GSM 模块连接到我的 AVR 微控制器。 我用FT232对其进行了测试以查看传输数据。 首先 Micro 发送 AT 它会响应 OK

AT OK
AT+CMGF=1 OK
AT+CMGS="+9893XXXXXX" returns ERROR and doesn't show ">"

谁能告诉我该怎么做?

【问题讨论】:

  • 您应该使用 +CMEE 命令启用扩展错误消息报告并查看设备返回的错误代码。
  • 我应该什么时候发送?还有什么结构?
  • 请稍加努力,自己看看 SIM900 命令手册。关于如何使用 +CMEE 以及它究竟做了什么的一切都在那里。

标签: serial-port sms gsm avr at-command


【解决方案1】:

命令AT+CSCS? 会回答你使用什么类型的短信编码。正确答案是“GSM”,如果不是,你应该通过命令AT+CSCS="GSM"设置它。

请记住“Ctrl+Z”(不是“Enter”)作为短信文本的结尾。

【讨论】:

  • AT+CSCS="GSM" 为我解决了这个问题。谢谢!
【解决方案2】:

您没有将所有参数传递给命令。

命令格式为:

AT+CMGS=<number><CR><message><CTRL-Z>

地点:

<CR> = ASCII character 13
<CTRL-Z> = ASCII character 26

您只传递了数字并且没有CR>您将看不到消息的>注释

例子:

AT+CMGS="+9893XXXXXX"
> This is the message.→

回复是:

+CMGS:<mr>
OK

&lt;mr&gt; 是消息引用。

【讨论】:

  • @MohammadFarahi 0x0D (=13),但 Ctrl-Z 是 0x1A (=26)。
【解决方案3】:

如果AT+CSCS?命令返回UCS2,那么很多参数需要编码为UTF-16编码的十六进制字符串,所以电话号码会变成“002B0039003800390033...”,短信文本需要编码为以同样的方式。如果您不需要 UCS2 编码,那么最简单的做法是切换到 GSM 编码(或AT+CSCS=? 命令显示的可用集中的另一种编码)

【讨论】:

    【解决方案4】:

    有时问题是您所处的文本模式。输入AT+CMGF?,您应该会收到+CMGF: 1。如果您收到的是+CMGF: 0,请输入AT+CMGF=1。这会将消息格式从 PDU 模式更改为文本模式。我不确定其中任何一个的确切含义,但这解决了我的问题。

    SIM 800 AT command manual

    【讨论】:

    • 老问题的答案很棒!问题不仅仅是为了帮助 OP,而是为了帮助每个有相同问题的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 2021-03-06
    相关资源
    最近更新 更多