为什么 Serial.available 不一致?

Why is Serial.available being inconsistent?

提问人:Taehyuk KIM 提问时间:11/14/2023 最后编辑:U. WindlTaehyuk KIM 更新时间:11/15/2023 访问量:12

问:

我正在用Arduino编码,我正在尝试编写一个代码,该代码将要求许多输入,然后单独请求每个输入。我现在将这个数字设置为六。

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Enter the amount of values:  ");
//  while (Serial.available() == 0){}
  float n= 6;              
  Serial.println("Please enter values for red light. Separate each value with a new line.");
  float sr[(int)(n)];
  while (Serial.available() == 0){}
//  y = 25, 18, 15, 12, 8, 5
  for(int i = 1; i <= n; i++){
    Serial.print("Enter the value for sample "); Serial.print(i); Serial.print(": ");
    delay(1000);
   while (Serial.available() == 0){}
    sr[i-1] = Serial.parseFloat();
    Serial.print(sr[i-1]);
    Serial.println("\n");
  }
}

我尝试输入数字,但发生的情况是,每次我输入一个数字时,它都会为下一个输入输入零,而不让我选择: 前任:

Enter the amount of values:
Please enter values for red light. Separate each value with a new line.
Enter the value for sample 1: 25.00
Enter the value for sample 2: 0.00

在这种情况下,我没有输入 0。它本身就是这样做的。我该如何解决这个问题?

输入 Arduino Arduino-Uno 串行监视器

评论

0赞 Juraj 11/14/2023
换行符。在 parseInt 之后添加以读取该行的其余部分Serial.find('\n');

答: 暂无答案