2014-02-24 74 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