如何使用arduino uno在一个数据包传输中向xbee路由器发送多个命令

问题描述 投票:0回答:1

我想知道是否可以通过协调器的一个命令远程控制 xbee 上的多个 IO 引脚。

我可以轻松地将一个 IO 引脚发送为高电平或低电平,如下所示

xB.write((byte)0x7E);
xB.write((byte)0x0);
xB.write((byte)0x10);
xB.write((byte)0x17);
xB.write((byte)0x0);  // Frame ID
xB.write((byte)0x00); // first byte
xB.write((byte)0x13); // 2
xB.write((byte)0xA2); // 3
xB.write((byte)0x00); // 4
xB.write(addy5); // 5
xB.write(addy6); // 6
xB.write(addy7); // 7
xB.write(addy8);// 8
xB.write((byte)0xFF);
xB.write((byte)0xFE);
xB.write((byte)0x02);
xB.write('D');
xB.write('0');
xB.write(val);
long sum = 0x17 + 0x13 + 0xA2 + addy5 + addy6 + addy7 + addy8 + 0xFF + 0xFE + 0x02 + 'D' + '0' + val;
xB.write((byte)0xFF - (sum & 0xFF));

但我似乎无法像这样一次发送多个数字引脚更改。

xB.write((byte)0x7E);
xB.write((byte)0x0);
xB.write((byte)0x1F);
xB.write((byte)0x17);
xB.write((byte)0x0);  // Frame ID
xB.write((byte)0x00); // first byte
xB.write((byte)0x13); // 2
xB.write((byte)0xA2); // 3
xB.write((byte)0x00); // 4
xB.write(addy5); // 5
xB.write(addy6); // 6
xB.write(addy7); // 7
xB.write(addy8);// 8
xB.write((byte)0xFF); // "10"67
xB.write((byte)0xFE);// 10"66"
xB.write((byte)0x02);

xB.write('D');
xB.write('1');
xB.write(bin[0]);

xB.write('D');
xB.write('0');
xB.write(bin[1]);

xB.write('D');
xB.write('2');
xB.write(bin[2]);

xB.write('D');
xB.write('3');
xB.write(bin[3]);

xB.write('D');
xB.write('5');
xB.write(bin[4]);

xB.write('D');
xB.write('4');
xB.write(bin[5]);

long sum = 0x17 + 0x13 + 0xA2 + addy5 + addy6 + addy7 + addy8 + 0xFF + 0xFE + 0x02 + 'D' + '1' + bin[0] + 'D' + '0' + bin[1] + 'D' + '2' + bin[2] + 'D' + '3' + bin[3] + 'D' + '5' + bin[4] + 'D' + '4' + bin[5];
xB.write((byte)0xFF - (sum & 0xFF));

我可能做错了什么?谢谢!

arduino serial-port xbee
1个回答
0
投票

正如您从远程 AT 命令帧的 API 参考中看到的,命令 (

D0
) 之后的字节是该命令的值。 XBee 模块没有用于多个 AT 命令的帧类型,但您可以发送一系列排队命令,并在设置
options
字段的“应用更改”位时立即应用它们。

因此,如果您在 AT 命令之前发送

0x02
,则可以为要排队的命令发送
0x00
,并且仅在最后一个命令上发送
0x02
,以使其应用所有更改一次。

此外,考虑编写一些例程来简化帧发送。例如,采用指向具有一定长度的缓冲区的指针的单个函数可以自动发送帧的开头 (

0x7E 0x00 <length>
) 以及在帧末尾计算出的校验和字节。

© www.soinside.com 2019 - 2024. All rights reserved.