AT + CMGS返回ERROR

时间:2014-02-03 08:38:07

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

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

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

有人可以告诉我该怎么做吗?

4 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:6)

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

命令格式为:

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

其中:

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

您只传递了数字而没有&lt; CR &gt;你不会看到&gt;请注意消息。

示例:

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

回复是:

+CMGS:<mr>
OK

其中<mr>是邮件参考。

答案 2 :(得分:2)

如果AT+CSCS?命令返回UCS2,则需要将许多参数编码为UTF-16编码的十六进制字符串,因此电话号码将变为“002B0039003800390033 ...”,并且SMS文本需要为以相同的方式编码。如果您不需要UCS2编码,那么最简单的方法是切换到GSM编码(或AT+CSCS=?命令所示的可用集中的其他编码)

答案 3 :(得分:1)

有时问题是您所处的文本模式。输入AT+CMGF?,您应该会收到+CMGF: 1。相反,如果您收到+CMGF: 0,请输入AT+CMGF=1。这会将消息格式从PDU模式更改为文本模式。我不确定这两个究竟是什么意思,但这解决了我的问题。

SIM 800 AT command manual