Arduino Serial.ParseInt()替代方案

时间:2015-05-31 01:22:31

标签: serial-port arduino

我需要从串行监视器中读取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进入串行监视器时。

1 个答案:

答案 0 :(得分:1)

可以使用Serial.parseInt。

对我来说,在我的设置功能

  //this will allow the parseInt to read faster and 
  //the arduino board will responsd faster
  Serial.setTimeout(50);   

这是因为parseInt()将继续从串行读取,直到任何一个 它达到非整数值,例如字母或
串行超时。