[英]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.