我的项目正在使用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);
部分。
您的问题实际上似乎是屏蔽堆叠问题。如果您从与Arduino板相同的位置购买了防护罩,则情况就是如此。
实际上,您已将 2 个设备连接到不支持的 TX/RX 引脚。以下帖子应该更好地解释Arduino Uno RX TX引脚。
通常,为了使它工作,您必须重新连接其中一个支架以使用不同的引脚并使用SoftwareSerial库与它们通信。这也意味着除非物理修改其中一个盾牌,否则您无法使用堆叠功能。
附带说明一下,您可能希望使用Electronics StackExchange站点来了解有关Arduino的更多问题。