【问题标题】:Trying to send an INT via XBee Arduino尝试通过 XBee Arduino 发送 INT
【发布时间】:2015-05-19 17:11:37
【问题描述】:

我试图通过 Xbee 和 Arduino 简单地发送“1”或“2”。我的 Arduino TX 正在 Serial.print 成功打印“1”或“2”,但 RX 没有收到相同的结果。

TX:

void buttonBring()
{
  delay(75);tone(speakerpin,660,300);
  delay(75);tone(speakerpin,330,300);
  digitalWrite(ledpin, HIGH);
  //Serial.println("Button B is Ringing");
  Serial.write("2");
  delay(600);

}

RX:接收到的值为

126
0
6
129
0
0
44
2
50
30

接收代码:

void loop() {
  if (xBee.available()) {
    byte bell = xBee.read();
    Serial.println(bell, DEC);
  }

我想只接收 1 或 2 甚至 A 或 B,以便接收者可以做出决定或使用 switch case,但 rx 必须是 yes 或 no 格式。我怎么搞砸了?

【问题讨论】:

    标签: arduino xbee


    【解决方案1】:

    接收 XBee 配置为 API 模式而不是“AT 模式”,您会看到接收数据的 0x81 数据包。 126(0x7E)是帧的开始,6是长度,129是类型(0x81),双零是发送地址(0x0000 =协调器)。我不确定 44 (0x2C) 或 2 (0x02),因为我没有方便的帧格式,但 50(0x32 或字符“2”)的有效负载看起来不错。 30 是帧的校验和。

    如果您想更多地探索 API 模式,请阅读 Digi 的 XBee 文档以获取有关帧格式的详细信息。如果您只使用两台收音机,“AT 模式”会更容易使用。就好像您只有一根串行电缆连接两个设备。

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      相关资源
      最近更新 更多