为什么串行值与未发送的值一起打印两次?

naw*_*was 2 serial-port arduino

使用下面的代码,我试图打印通过 Arduino 串行接收的值。但是该值会打印两次。打印值之一始终为 0。

byte b;
int i;

void setup() {
  Serial.begin(115200);
  Serial.setTimeout(10);
}

void loop() {
  while(Serial.available() == 0) {}
  i = Serial.parseInt();
  Serial.println(i);
}

EXAMPLE: value sent is 15
Serial monitor output: 15
                       0

EXAMPLE: value sent is 99
Serial monitor output: 99
                       0
Run Code Online (Sandbox Code Playgroud)

Adn*_*and 5

那是因为第一个i = Serial.parseInt();打印读取的值并将0返回给i变量,这意味着该值打印成功。

在第二个Serial.println(i);,您只需打印i值,即 0。