简体   繁体   English

Arduino Serial.write() 丢失数据

[英]Arduino Serial.write() Missing Data

I'm reading data from Serial2 and writing data to Serial3 on Arduino like this:我正在从 Serial2 读取数据并将数据写入 Arduino 上的 Serial3,如下所示:

Serial3.write(Serial2.read());

I am writing a concatenated string from Python that looks like this:我正在从 Python 编写一个连接字符串,如下所示:

myNum = readADC(2)
myString = "The Number: " + str(myNum)
print(myString);

The output of the above code an empty string.上面代码的输出是一个空字符串。

If I do print("some string " + myNum) I get:如果我执行print("some string " + myNum)我得到:

some string

If I do print(myNum) I get:如果我print(myNum)我得到:

say, 32说, 32

Printing myString to the Python console shows the expected output.将 myString 打印到 Python 控制台会显示预期的输出。

It looks like Serial.write(data) is doing something to the string.看起来Serial.write(data)正在对字符串做一些事情。

How do I fix this?我该如何解决?

Actually Serial.read() returns 1 byte of data.实际上Serial.read()返回 1 个字节的数据。 I am surprised you get "The Number" string.我很惊讶你得到"The Number"字符串。

I recommend you to我建议你

  • Read incoming bytes with an iteration使用迭代读取传入字节
char IncomingString[14];
if (Serial.available() > 0) {
    Serial.readBytes(IncomingString, 14);// Assuming myNum is 2 bytes data
}

From now on you have your string.从现在开始你有你的字符串。 You can use Serial.write(IncomingString)您可以使用Serial.write(IncomingString)

  • Send "The Number: " and myNum consequtively.依次发送"The Number: "和 myNum。
print("The Number: ");
print(str(myNum));

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

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