读取一个串口字符
本课属于 Coddy Arduino 学习旅程的“输入”单元。第 15 课,共 22 课。
Serial 连接是双向的。在 Serial 监视器的输入框中输入文本,然后点击发送,文本就会逐个字符地发送到开发板,并在那里留在缓冲区中,直到草图读取它。
Serial.available() 会告诉你有多少个字符正在等待。Serial.read() 会从缓冲区中取出下一个字符。一个字符可以放进 char 变量中,并用单引号书写:
if (Serial.available() > 0) {
char c = Serial.read();
if (c == '1') {
// 输入了 1
}
}用单引号括起来的 '1' 是字符 1,也就是你按下的那个键。它不是数字 1:开发板会将这个字符存储为代码 49。
无论你输入什么,Serial 监视器还会发送一个不可见的换行符,写作 '\n'。草图会处理它认识的字符,并跳过其他字符。
挑战
简单LED 接在引脚 13 上。通过 Serial monitor 切换它的状态:
- 有字符等待读取时,将它读入一个
char '1'会点亮 LED,'0'会将它熄灭- 其他任何字符(例如换行符)都不会改变状态
按“运行”,在 Serial monitor 中输入 1 或 0,然后按 Send,再按“检查”。
亲手试试
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// 有字符等待读取时,就读取它
// '1' 会点亮 LED,'0' 会将其熄灭
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输入中的所有课
自己练习: Arduino 在线编辑器