【发布时间】:2019-08-17 12:42:47
【问题描述】:
我有一个简单的代码。
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()) {
char incomingChar = Serial.read();
char testChar = ".";
Serial.println(incomingChar);
Serial.println(incomingChar == testChar);
}
}
我打开了串行监视器界面。我将波特设置为 9600 和“无行尾”并输入:a、b、. 输出为:
14:38:35.675 -> a
14:38:35.675 -> 0
14:38:37.105 -> b
14:38:37.105 -> 0
14:38:38.557 -> .
14:38:38.557 -> 0
为什么来自串口的字符.不等于.?
【问题讨论】:
-
把这个
char testChar = ".";改成char testChar = '.'; -
"."不是char。 -
你试过打印出
testChar吗?你可能会对你所看到的感到惊讶。结论:启用编译器警告。 -
非常感谢和抱歉关于菜鸟问题。
'.'工作。 -
您需要启用编译器警告并将所有警告视为错误。
标签: c++ arduino arduino-c++