HTTPREAD缺少Arduino和SIM900的字符

时间:2015-11-21 00:17:08

标签: c arduino sim900

我正在使用我的Arduino的SIM900模块,虽然它返回了正确数量的字符,但它缺少字符。我在AT + SAPBR = 1,1和AT + HTTPINIT上有ERROR所以我不确定这是不是它的原因。我不知道如何解决这些问题。

AT+CGATT?

+CGATT: 1

OK
AT+CGATT=1

OK
AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","mobile.o2.co.uk"

OK
AT+SAPBR=1,1

ERROR
AT+HTTPINIT

ERROR
AT+HTTPPARA="URL","http://www.xxxxxxxxxxx.com/temp/"

OK
AT+HTTPACTION=0

OK

+HTTPACTION:1,200,56
AT+HTTPREAD

+HTTPREAD:56
{"type":"dOK

我的函数在进入字符时读取字符:

void whileAvailable() {
  char data;
  while (SIM900.available()) {
    data=SIM900.read();
    if (data>0) Serial.print(data);
  }
}

我相信这个函数正在读取字符,但是我不确定为什么找不到其他字符

2 个答案:

答案 0 :(得分:0)

这是由于您使用的arduino uno或mega的串行缓冲区溢出。增加缓冲区大小,以便它们可以容纳更多字节;并且可以显示这些数据。

答案 1 :(得分:0)

您需要关闭AT + SAPBR和AT + HTTPINIT模式

尝试一下:AT + SAPBR = 0,1

       AT+HTTPTERM