Arduino 串行读取和检查
Arduino serial read and check
我正在尝试学习一些关于从蓝牙设备读取 arduino 串口的知识。这是我到处找到的代码:
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte);
}
}
当我从移动蓝牙发送单词“word”时,我收到 4 行:
我收到了:w
我收到了:o
我收到了:r
我收到了:d
很好...但这是我的问题:
我想在接收到的字符进入串行输入后立即检查它们,所以如果其中一个是字符“r”,我想在串行监视器中打印额外的一行,比如:“哇,那是一个 r!”
所以我在 println(incomingByte) 之后添加了一个 if 语句,我的代码现在是这样的:
Serial.print("I received: ");
Serial.println(incomingByte);
if (incomingByte == "r") {
Serial.println("wow, that was an r!");
}
那个代码永远都行不通,就像根本没有“r”一样。
有人可以向我解释吗?
谢谢
我认为这是由于使用了 "r"
而不是 'r'
。不同之处在于,在第一种情况下,您有字符串,即 char[],而在第二种情况下,您有单个 char.
我正在尝试学习一些关于从蓝牙设备读取 arduino 串口的知识。这是我到处找到的代码:
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte);
}
}
当我从移动蓝牙发送单词“word”时,我收到 4 行:
我收到了:w
我收到了:o
我收到了:r
我收到了:d
很好...但这是我的问题:
我想在接收到的字符进入串行输入后立即检查它们,所以如果其中一个是字符“r”,我想在串行监视器中打印额外的一行,比如:“哇,那是一个 r!”
所以我在 println(incomingByte) 之后添加了一个 if 语句,我的代码现在是这样的:
Serial.print("I received: ");
Serial.println(incomingByte);
if (incomingByte == "r") {
Serial.println("wow, that was an r!");
}
那个代码永远都行不通,就像根本没有“r”一样。 有人可以向我解释吗? 谢谢
我认为这是由于使用了 "r"
而不是 'r'
。不同之处在于,在第一种情况下,您有字符串,即 char[],而在第二种情况下,您有单个 char.