我想从嵌入式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++)
;
}
}
有更好的方法吗?
答案 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