0

我的 xBee S1 Pro 模块有一个非常奇怪的问题。我使用 XCTU 软件来配置它们。我将一个 Arduino 设置为接收数据,另一个用于传输。当我使用 XCTU 软件发送一些测试帧时,它可以工作,接收器获取数据。但是,如果我想让我的 arduinos 进行交流,它就不起作用。我假设模块配置正确,因为 PC -> Arduino 有效。所以我会提供草图,这样你就可以告诉我出了什么问题

接收者

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);
}

怎么了?有任何想法吗?

4

4 回答 4

1

我会检查与 Xbee 的连接,即确保 RX 实际连接到 DOUT 并且 TX 连接到 DIN。此外,如果您正在发送实际的“帧”,那么听起来您正在以 api 模式运行 xbees,因此您需要做更多的事情,然后只需发送您想要的“数据”以使其在串行直通模式下运行。

最后要检查的一件事是,如果您使用的是 arduino Leonardo 或 Micro,硬件串行端口是 Serial1 而不是 Serial。

于 2015-01-16T06:10:30.117 回答
0

您使用相同的串行端口与 XBee 和 USB 进行通信。那就是问题所在。您需要设置另一个串行端口而不是用于 USB 与 XBee 通信。

如果你能分享你正在使用的 arduino 板和防护板,那就太好了。

于 2014-12-11T19:08:11.100 回答
0

所以第一件事是第一……如果这些 xBees 有不同波特率的单独密码,那么糟糕的事情就会发生。还有这些是什么命令模式(AT或API)?出厂默认设置 ?接受 AT 命令来改变这些?(默认情况下您处于 AT 模式)

打开一个串行程序(我使用coolTerm for OS X)。确保正确设置这些步骤。

一旦您知道这些发射器正在以相同的波特率、密码等进行通信……确保在通过简单的串行读写将这些发射器连接到 RX/TX 引脚之前将代码上传到您的 Arduinos。

于 2015-03-14T23:27:14.903 回答
0

该代码似乎正确,但请确保您要发送的内容。Xbees 只能发送和接收 8 位数据。先发送一个已知字节的数据如a=100;看看这些数据是否完美接收。

于 2015-11-11T15:17:15.567 回答