PC机向阿德板发送一个字符串,阿德板收到后排查其中是否含有字母A,若找到,输出“YES”,并提升A的位置,否则,输出NO,且只显示第一次A的位置
void setup() {
Serial.begin(9600); // 初始化串口通信
}
void loop() {
static bool aFound = false; // 标志变量:是否找到字母A
static int aPosition = -1; // 字母A的位置
if (Serial.available() > 0) { // 如果有可读取的串口数据
char c = Serial.read(); // 读取一个字符
if (!aFound && c == 'A') { // 如果还没找到字母A,并且当前字符是A
aFound = true; // 设置标志变量为true
aPosition = Serial.available(); // 记录A的位置
Serial.println("YES"); // 输出YES
} else if (aFound) { // 如果已经找到过A
aFound = false; // 重置标志变量
} else { // 如果当前字符不是A,并且还没找到过A
Serial.println("NO"); // 输出NO
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: