我的xBee S1专业模块有一个非常奇怪的问题。我使用XCTU软件来配置它们。我设置了一个Arduino接收数据,另一个发送数据。当我使用XCTU软件发送一些测试帧时,它工作了,reciver获得了数据。但是,如果我想让我的arduinos来传达它,那就没什么用了。我假设模块的配置方式是正确的,因为PC -> Arduino可以工作。所以我会提供草图,这样你就可以告诉我哪里出了问题
reciver
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available() > 0){
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
Serial.print("recived some data: ");
Serial.println(Serial.read());
Serial.flush();
}
}现在是发送者
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println("data");
Serial.flush();
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(4000);
}怎么了?有什么想法吗?
发布于 2015-01-16 14:10:30
我将检查与Xbee的连接,即确保RX实际连接到DOUT,TX连接到DIN。另外,如果你正在发送实际的“帧”,那么听起来你就像是在api模式下运行你的xbees,所以你需要做更多的事情,而不仅仅是发送“数据”,你想让它在串行直通模式下运行。
最后要检查的是,如果您使用的是arduino莱昂纳多或微硬件串行端口是Serial1,而不是串行。
发布于 2014-12-12 03:08:11
您正在使用相同的串行端口与XBee和USB进行通信。这就是问题所在。要与XBee通信,需要设置另一个串口,而不是用于USB。
如果你分享你正在使用的arduino板和防护板,那将是很好的。
发布于 2015-03-15 07:27:15
所以第一件事就是...如果这些xBees在不同的波特率下有不同的密码,就会发生狗屎现象。还有,这些是什么命令模式(AT或API)?是否为出厂默认设置?接受AT命令来更改这些吗?(默认情况下,您处于AT模式)
打开一个串行程序(我在OS X上使用coolTerm )。确保这些步骤设置正确。
一旦你知道这些发射器是以相同的波特率,密码,等等..。在通过简单的串行读写将这些发射器连接到RX/TX引脚之前,请确保已将代码上载到Arduinos。
https://stackoverflow.com/questions/23843691
复制相似问题