我的项目是使用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);
的括号({)上方的部分停止。
答案 0 :(得分:0)
您的问题似乎实际上是屏蔽堆叠问题。如果您从Arduino板的同一个地方购买了盾牌,那就是这种情况。
从根本上说,您已将2个设备连接到支持 的TX / RX引脚。以下帖子应该更好地解释Arduino Uno RX TX Pins。
通常,为了使其工作,您必须重新连接其中一个sheld以使用不同的引脚并使用SoftwareSerial库与它们进行通信。这也意味着你不能使用堆叠功能,除非要修改你的一个盾牌。
另外,您可能希望使用Electronics StackExchange网站获取有关Arduino的更多问题。