如何让arduino uno 串口读取的数据同时分别为两个变量赋值
时间: 2023-05-24 21:02:15 浏览: 182
您可以使用Serial.readStringUntil()函数来读取串口数据,并使用String.toFloat()或String.toInt()函数将字符串转换为浮点数或整数,然后将它们赋值给两个变量。
以下是一个示例代码:
```
String inputString = ""; // 保存从串口读取的字符串
float var1 = 0; // 变量1
int var2 = 0; // 变量2
void setup() {
Serial.begin(9600); // 初始化串口
}
void loop() {
// 读取串口数据
if (Serial.available() > 0) {
char c = Serial.read();
if (c == '\n') {
// 当读到换行符时,解析字符串并赋值给变量
int pos = inputString.indexOf(',');
if (pos != -1) {
var1 = inputString.substring(0, pos).toFloat();
var2 = inputString.substring(pos + 1).toInt();
}
inputString = ""; // 清空字符串
Serial.print("var1=");
Serial.print(var1);
Serial.print(", var2=");
Serial.println(var2);
} else {
inputString += c;
}
}
}
```
在这个示例中,我们假设从串口读取的数据是逗号分隔的两个数字,例如“1.23,456”(注意没有引号)。当Arduino读取完整的一行(以换行符结尾)后,它将字符串解析为两个浮点数和一个整数,并将它们赋值给变量var1和var2。最后,Arduino将变量的值打印回串口,以便您可以检查它是否正确赋值。
阅读全文