Arduino Serial.write() 丢失数据
我正在用Arduino从Serial2读取数据,并把数据写入Serial3,代码是这样的:
Serial3.write(Serial2.read());
我从Python发送的字符串拼接起来,长得像这样:
myNum = readADC(2)
myString = "The Number: " + str(myNum)
print(myString);
上面的代码输出的是一个空字符串。
如果我执行 print("some string " + myNum)
,我得到:
some string
如果我执行 print(myNum)
,我得到:
比如说,32
在Python控制台打印myString时,显示的是我预期的输出。
看起来 Serial.write(data)
对字符串做了什么处理。
我该怎么解决这个问题呢?
1 个回答
0
其实,Serial.read()
只会返回1个字节的数据。我很惊讶你会得到 "The Number"
这个字符串。
我建议你:
- 用循环来读取接收到的字节。
char IncomingString[14];
if (Serial.available() > 0) {
Serial.readBytes(IncomingString, 14);// Assuming myNum is 2 bytes data
}
从现在开始,你就有了你的字符串。你可以使用 Serial.write(IncomingString)
。
- 连续发送
"The Number: "
和 myNum。
print("The Number: ");
print(str(myNum));