Embedded 如何向XBee发送有效负载

Embedded 如何向XBee发送有效负载,embedded,xbee,Embedded,Xbee,我已经在一个嵌入式平台上实现了以下代码,该平台尝试与。执行以下代码的嵌入式平台不是xbee: intmain() { 字符有效负载[12]={0x61,0x88,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x00} 有效载荷[2]=0x10; 有效载荷[9]=0x01; 字符数据='H';//向XBee发送简单的ASCII字符 有效载荷[11]=数据; 而(1) 发送字节数据(有效载荷,12); } 无效发送字节数据(字符*有效负载,整数长度) {

我已经在一个嵌入式平台上实现了以下代码,该平台尝试与。执行以下代码的嵌入式平台不是xbee:

intmain()
{
字符有效负载[12]={0x61,0x88,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x00}
有效载荷[2]=0x10;
有效载荷[9]=0x01;
字符数据='H';//向XBee发送简单的ASCII字符
有效载荷[11]=数据;
而(1)
发送字节数据(有效载荷,12);
}
无效发送字节数据(字符*有效负载,整数长度)
{
int x;
对于(x=0;x一些想法

  • 将有效负载设置为
    无符号字符数组
    ,或者更好的设置为
    uint8\u t
  • 要更新有效负载[2]和有效负载[9],请简化代码:

    ++payload[2];
    ++payload[9];
    if (payload[9] == 0) payload[9] = 1;
    
  • 在发送之间添加延迟。在发送下一个字符之前,您甚至可能需要等待响应

  • 由于它是一个无符号8位值的有效载荷,它们将自动从255滚动到0。我假设有效载荷[9]的特殊情况代码正试图从255滚动到1(而不是0)


    确保负载不需要包含某种校验和。更新这两个字节会影响校验和字节。

    sendByteOfData()
    中修改
    payload[]
    是错误的编码;为什么在
    main()中不执行此递增操作
    ?。实际上,过程名称完全是误导性的,因为
    sendByteOfData()
    将传输多个字节。
    ++payload[2];
    ++payload[9];
    if (payload[9] == 0) payload[9] = 1;