繁体   English   中英

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

[英]Data inconsistency in XBee send and receive. Embedded C

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

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

但是,当我发送消息时,会有一些随机行为,并且输出采用以下格式。

    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++)
            ;
    }
}

有更好的方法吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM