2014-02-24 37 views
0

我的项目是使用GPRS和GPS盾牌。我的主板有2个UART端口,所以当我使用2个屏蔽时没有问题。我的两个屏蔽码单独工作正常,但是当我已经在一个板上集成两个,对于GPS代码犯规继续(GPRS作品),它就像陷在这个命令GPRS + GPS通讯

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

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

这是我的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);的部分停止只是支架上述({)。

+0

Pleae提供您正在使用的电路板和GPS/GPRS防护板的品牌/型号信息。 – Migol

+0

我使用这个arduino兼容板,Gizduino +和64K的内存。 http://www.e-gizmo.com/KIT/gizduino+%20164,324,644.html。 – thePhonenix18

+0

@ thePhoenix18以及GPS和GPRS屏蔽? – Migol

回答

0

您的问题似乎实际上是一个屏蔽堆叠问题。如果你从Arduino板的同一位置买了你的盾牌,情况就是这样。

从本质上讲,您已将2个设备连接到TX/RX引脚,即支持而不是。以下文章应该更好地解释它Arduino Uno RX TX Pins

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

在附注中,您可能需要使用Electronics StackExchange站点来了解关于Arduino的更多问题。

+0

板子和盾牌只是相容的,所以我只是将它们堆叠在一起。 – thePhonenix18

+0

单板+ GPS是,单板+ GPRS不是普通单板+ GPS + GPRS – Migol

+0

当您想要通信2个屏蔽和电路板时,是否需要使用SPI库? – thePhonenix18