检查代码中数据类型和传输的方式是否一致。例如,如果在 Arduino 中使用了 Serial.write() 发送了一个数字,应该使用 C++ 中的 Serial.read() 读取该值。另外,可以尝试使用数据结构(如 struct)来传输多个值,以确保它们被正确解释。同时,可以使用调试工具(如 Serial.print())来帮助调试代码,查看数据是否符合预期。以下是一份示例代码,其中演示了如何使用 Serial.write() 和 Serial.read() 传输数字和字符串。
Arduino 代码:
int myNumber = 42;
String myString = "Hello world!";
void setup() {
Serial.begin(9600);
}
void loop() {
// 发送数字
Serial.write(myNumber);
// 发送字符串
Serial.write(myString.c_str(), myString.length());
delay(1000);
}
C++ 代码:
#include
SoftwareSerial mySerial(10, 11); // RX, TX
int myNumber;
char myString[20];
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
// 读取数字
if (mySerial.available() >= sizeof(myNumber)) {
mySerial.readBytes((char *)&myNumber, sizeof(myNumber));
Serial.println(myNumber);
}
// 读取字符串
if (mySerial.available() >= sizeof(myString)) {
mySerial.readBytes(myString, sizeof(myString));
Serial.println(myString);
}
}