我的项目是使用GPRS和GPS屏蔽。我的主板有两个UART端口,所以当我使用这两个屏蔽时不会有任何问题。我的两个防护罩的代码单独工作很好,但当我已经将两个集成在一个板上时,GPS的代码不再继续(GPRS工作),它就像卡在这个命令中一样
ptr = strstr(GPS_data, "$GPGGA"); //search GPGGA String但是,如果我只使用GPS防护板和电路板,这个命令运行得很好。我使用2波特率,57600的GPRS和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);部分。
发布于 2014-02-24 20:37:23
您的问题看起来实际上是一个屏蔽堆叠问题。如果你从同一个地方购买了你的护盾作为你的Arduino电路板,这是情况。
最后,您已将2个设备连接到不支持的 TX/RX引脚。下面的帖子应该会更好地解释Arduino Uno RX TX Pins。
通常,为了使其正常工作,您必须重新连接其中一个sheld以使用不同的引脚,并使用SoftwareSerial库与它们通信。这也意味着你不能使用堆叠能力,除非物理修改你的一个盾牌。
另外,您可能希望使用Electronics StackExchange站点了解有关Arduino的更多问题。
https://stackoverflow.com/questions/21986429
复制相似问题