Arduino serial.parseInt()本身返回一个0值

Arduino serial.parseInt()本身返回一个0值,arduino,serial-port,Arduino,Serial Port,我试图从串口读取一些整数,所以我使用serial.parseInt()读取两个值(0或1),问题是代码第一次运行得很好,但随后串口开始自己读取值0,而我不发送任何内容,下面是我使用的部分代码: while(!Serial.available()){ A=Serial.parseInt(); 序列号println(A); 如果(A==1){ Book=“”; Serial.println(“添加标签”); 而(Book==“”){ 延迟(2000年); Book=tagB(); } 连载印刷品(书

我试图从串口读取一些整数,所以我使用serial.parseInt()读取两个值(0或1),问题是代码第一次运行得很好,但随后串口开始自己读取值0,而我不发送任何内容,下面是我使用的部分代码:

while(!Serial.available()){
A=Serial.parseInt();
序列号println(A);
如果(A==1){
Book=“”;
Serial.println(“添加标签”);
而(Book==“”){
延迟(2000年);
Book=tagB();
}
连载印刷品(书籍);
sendToE1(“,Book”);
延迟(2000年);
}
}
}

Serial.parseInt
在超时且未收到任何字符或无效字符时返回
0

在调用
Serial.parseInt
之前,循环正在等待可用的数据。唯一的解释是,您发送的不是数字,而是其他内容。最有可能是从终端程序或println函数返回的换行符或回车符

在调用
Serial.parseInt
之前,您可能应该调用
Serial.peek
检查下一个字节是否为数字。如果您确定只发送了一个整数和一些非数字字符,那么也可以在解析下一个可能的整数之前清除输入缓冲区

但是,如果要发送整数和终止字符,最好不要使用
Serial.parseInt
。将数据读入数组,直到收到终止字符。然后自己将数据转换为整数


只有当您知道将在某个时间间隔内收到整数表示时,才可以使用
Serial.parseInt

您可能需要将监视器设置为“无行尾”。

有“不可见”的行尾字符需要读取。