我是新编程。
我试图在arduino中将整数转换为布尔值,但我总是得到1。 请帮帮我:
/////////////////////////////////
boolean booleanValue;
int val;
void setup() {
Serial.begin(9600);// connect to the serial port
}
void loop () {
if (Serial.available()) {
val = Serial.read();//// read the serial port
boolean booleanValue = !!val;
Serial.println(booleanValue);
}
}
答案 0 :(得分:1)
您需要使用Serial.parseInt()
代替Serial.read()
。
Serial.read()
返回输入字节的位模式,字符为#30; 0"的十六进制30。如果输入是空字节,则返回0,而不是数字,字母等。
或者,您可以检查输入是否为0x30,将其视为false,并将所有其他输入视为true。
您应该尝试隔离您怀疑的代码,并确保您确切知道它正在使用哪些输入。在这种情况下,在阅读之后立即插入Serial.println(val,HEX);
会告诉您问题在于您的阅读方式,而不是在转换中。