Arduino GPRS屏蔽仅通过串行监视器显示SMS的第一个字符(AT + CMGR不工作)

时间:2013-10-16 23:08:17

标签: serial-port sms arduino gsm gprs

我通过串行监视器Arduino窗口为我的arduino UNO连接了一个seeedstudio GPRS屏蔽,有些写入直接回显给tty(我正在使用Linux)

我能够在发送短信甚至接收短信时正确地与它进行交互,但是当我运行命令来阅读消息(知道它的ID)时,我只返回消息的第一个字符,如这样:

+CMGR: "REC READ","MYPHONENUMBERHERE","","13/10/15,21:45:44-40"
H

完整的信息是“嗯”,唯一显示的是“H”

确切的命令运行如下:

AT+CMGR=3

另外,有趣的是,当我跑

AT+CMGL="ALL"

我似乎收到了每条消息

+CMGL: 2,"REC READ","+1xxxxxxxxxx","","13/10/15,21:35:51-40"
+CMGL: 3,"REC READ","+1xxxxxxxxxx","","13/10/15,21:45:44-40"
+CMGL: 4,"REC READ","+1xxxxxxxxxx","","13/10/16,06:08:24-40"

另外,SIM卡是通过AT&amp; T的GoPhone服务获得的,并且通过GPRS屏蔽上的SIM900模块正确激活,如上所述,可以正常发送短信,但是正确显示它们会被打破。< / p>

我正在使用的盾牌在这里找到: www.seeedstudio.com/wiki/GPRS_Shield_V1.0

2 个答案:

答案 0 :(得分:2)

我有同样的问题,最后发现SoftwareSerial.h包含文件中设置的最大接收缓冲区大小为64。

我找到了以下一行:

#define _SS_MAX_RX_BUFF 64 // RX buffer size

并将其更改为:

#define _SS_MAX_RX_BUFF 128 // RX buffer size

然后我可以看到整个信息。

包含文件SoftwareSerial.h可以在Arduino / libraries / SoftwareSerial目录中找到。对于我在Windows下运行的Arduino 1.0.5。

在我的MAC(运行Arduino 1.5.4)上,我找到了文件:SoftwareSerial_Class.h包含旧的SoftwareSerial.h代码。尚未测试过这个!

回复并让我知道你是怎么回事。

答案 1 :(得分:0)

我将其更改为:

#define _SS_MAX_RX_BUFF 256 // RX buffer size

因为邮件的长度可能是160个字符。

!! 注意该号码必须只有这个值:64,128,256,512(?)等等!!