我使用XCTU测试发送数据包。我的xbee无线电被配置为协调器API-2(产品系列XB24-ZB,固件版本21A7,MAC地址0013A20040BCE8CB)。我发送以下发送请求帧字节:
7E 00 12 10 01 00 00 00 00 00 00 00 00 FF FE 00 00 01 02 03 04 E7
接收数据包帧在帧详细信息面板中具有以下字节:
7E 00 10 90 00 7D 33 A2 00 40 BC E8 CB 00 00 01 01 02 03 04 00
我的问题是粗体文本中的字节(发件人的64位地址)。
正如我所理解的那样,正确的字节应该是:
00 13 A2 00 40 BC E8 CB
我收到字节时的校验和是错误的(0x9C)。
但是,如果我替换正确的字节(即,我将 00 7D 33 替换为 00 13 ,则校验和值正确(0xFF)。
我也在我的Arduino代码中看到了这种行为。我以为是我,但我在XCTU应用程序中得到了完全相同的行为(以及在C#项目中)。 (具体来说,64位地址总是有00 7D 33,我期待00 13.我缺少什么?
感谢名单
答案 0 :(得分:0)
您的XBee模块配置为转义API模式(ATAP=2
),它将字节0x7D,0x7E,0x11和0x13替换为0x7D,并将转义字符XORed替换为0x20。
设置ATAP=1
,您将开始看到预期的字节。
Digi有一个很好的Knowledge Base document explaining the escaped mode。