我需要从串行监视器中读取1个三位整数(例如:134)。我目前正在使用Serial.parseInt()并获得我想要的行为,但它非常慢。什么是这种方法的更快的替代方案?
编辑:必须同时读入整数的所有部分,因此不能使用Serial.available()和Serial.read()。
Edit2:我尝试使用
while (Serial.available()) {
int val = Serial.read();
int val2 = Serial.read();
int val3 = Serial.read();
Serial.print("Val1: ");
Serial.println(val);
Serial.print("Val2: ");
Serial.println(val2);
Serial.print("Val3: ");
Serial.println(val3);
}
在循环部分,但得到了输出
Val1: 97
Val2: -1
Val3: -1
Val1: 98
Val2: -1
Val3: -1
Val1: 99
Val2: -1
Val3: -1
当我输入abc进入串行监视器时。
答案 0 :(得分:1)
可以使用Serial.parseInt。
对我来说,在我的设置功能
中 //this will allow the parseInt to read faster and
//the arduino board will responsd faster
Serial.setTimeout(50);
这是因为parseInt()将继续从串行读取,直到任何一个
它达到非整数值,例如字母或
串行超时。