我正在使用SIM900 GSM模块连接到我的AVR微控制器。 我用FT232测试它以查看传输数据。 First Micro发送AT它会响应OK
AT OK
AT+CMGF=1 OK
AT+CMGS="+9893XXXXXX" returns ERROR and doesn't show ">"
有人可以告诉我该怎么做吗?
答案 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模式更改为文本模式。我不确定这两个究竟是什么意思,但这解决了我的问题。