GPRS + GPS通信

时间:2014-02-24 11:28:03

标签: gps serial-port communication gprs

我的项目是使用GPRS和GPS盾牌。我的电路板有2个UART端口,所以当我使用2个屏蔽时没有问题。我的两个盾牌的代码工作得很好,但当我已经将两个集成在一块板子里时,GPS的代码不会继续(GPRS工作),就像卡在这个命令中一样

ptr = strstr(GPS_data, "$GPGGA"); //search GPGGA String

但如果我只使用GPS防护板,那么此命令可以完美运行。我使用2波特率,GPRS为57600,GPS为9600。这可能是什么问题?谢谢!

这是我的GPS代码的一部分。

void SEND_data()
{
  digitalWrite(gpsPin, HIGH);

  Serial1.begin(9600); //GPS shield communication
  pinMode(TX1, OUTPUT);
  digitalWrite(TX1, HIGH);

  Serial1.write(Serial1.read()); 
  while(!ptr)
  {
    while(Serial1.available())
    delay(10);
    {
      GPS_data[i]=Serial1.read(); //output of the GPS
      i++;
      j=0;
      delay(10);
    }
    ptr = strstr(GPS_data,"$GPGGA"); //search GPGGA String
    digitalWrite(gogoPin, HIGH);
  }
   digitalWrite(sendPin, HIGH);

我的问题是上面的digitalWrite(sendPin, HIGH)不再亮了,所以基本上正在运行的代码会在digitalWrite(gogoPin, HIGH);的括号({)上方的部分停止。

1 个答案:

答案 0 :(得分:0)

您的问题似乎实际上是屏蔽堆叠问题。如果您从Arduino板的同一个地方购买了盾牌,那就是这种情况。

从根本上说,您已将2个设备连接到支持 的TX / RX引脚。以下帖子应该更好地解释Arduino Uno RX TX Pins

通常,为了使其工作,您必须重新连接其中一个sheld以使用不同的引脚并使用SoftwareSerial库与它们进行通信。这也意味着你不能使用堆叠功能,除非要修改你的一个盾牌。

另外,您可能希望使用Electronics StackExchange网站获取有关Arduino的更多问题。