我试图简单地通过Xbee&发送“1”或“2”。 Arduino的。我的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
RX代码:
void loop() {
if (xBee.available()) {
byte bell = xBee.read();
Serial.println(bell, DEC);
}
我想收到1或2甚至A或B,以便接收方可以做出决定或使用交换机案例,但rx需要是或不是格式。我怎么搞砸了?
答案 0 :(得分:0)
接收XBee配置为API模式而不是" AT模式",并且您正在查看接收数据的0x81数据包。 126(0x7E)是帧的开始,6是长度,129是类型(0x81),双零是发送地址(0x0000 =协调器)。我不确定44(0x2C)或2(0x02),因为我没有方便的帧格式,但有效载荷为50(0x32或字符' 2')看起来不错。 30是帧的校验和。
如果您想更多地探索API模式,请阅读Digi的XBee文档,了解有关帧格式的详细信息。如果你只是使用两个无线电," AT模式"会更容易使用。就好像你只需要连接这两个设备的串行电缆一样。