XBee发送和接收中的数据不一致。嵌入式C

时间:2014-06-26 09:48:20

标签: c embedded microcontroller xbee

我想从嵌入式C中的串口发送以下格式的字符串。我正在使用Silicon Labs微控制器。所需的输出是

"01001ODR0001\r\n"
"01002ODR0001\r\n"
"01003ODR0001\r\n"

然而,当我发送消息时,有一些randome行为,输出的格式如下。

    0R00110
 010
120 0D
   01001ODR0001
0R0ODR0000
1OD01O01R10R
            01002OR0001
0O012000

我使用以下方法

sendToXbee("01001ODR0001\r\n");

void sendToXbee(unsigned char *msg) {
    while (*msg != '\0')     //Checking up to null char
    {
        SerTx(*msg);
        msg++;
        Delay(1);
    }
}

void SerTx(unsigned char x) {
    SBUF0 = x;
    while (TI0 == 0)
        ;
    TI0 = 0;
}

/**
 * Delay
 */
void Delay(unsigned char temp) {
    unsigned int i, j;

    for (i = 0; i <= temp; i++) {
        for (j = 0; j <= 5000; j++)
            ;
    }
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

嗨,大家好,感谢您的帮助。似乎我在终端上使用了一个屏幕命令,同时运行了一个使用相同对象的python脚本,因此数据不一致。如果你看到下面的终端输出更好但仍然不完美

04001ODR0001
04001OD000
04002ODR001
04002ODR0000
04003ODR0001
04003ODR0000
04004DR0001
04004ODR0000
04005ODR0001
04005ODR000
04004OD0001
0404ODR0000
04003ODR001
04003ODR0000
04003OR0001
04003ODR000
04003ODR001
0403OR000100
04003ODR0000
            0400ODR0001
4003ODR000
04003OR0001
0400ODR0000