2013-10-16 28 views
0

我通过串行监视器Arduino窗口为我的arduino UNO连接了一个seeedstudio GPRS屏蔽,并且有些直接回显到tty (我正在使用Linux)Arduino GPRS屏蔽仅通过串行监视器显示短信的第一个字符(AT + CMGR不工作)

我能够在发送短信甚至接收它们的问候上与它正确接口,但是当我运行命令来读取消息(知道它是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的& T的GoPhone服务获得的,并且可以通过SIM900模块在GPRS屏蔽上,如上所述,可以很好地发送短信,但让它们正确显示已损坏。

我使用的屏蔽这里找到: www.seeedstudio.com/wiki/GPRS_Shield_V1.0

回答

2

我有同样的问题,最后发现有一个最大的接收64套的缓冲区大小在SoftwareSerial .h包含文件。

我发现下面一行:

#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代码。还没有测试过这个呢!

寄回来,让我知道你是怎么回事。

0

我将其更改为:

#define _SS_MAX_RX_BUFF 256 // RX buffer size 

,因为消息可能是160个字符长。

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

相关问题