Menu
CoddyTech

读取一个串口字符

本课属于 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'。草图会处理它认识的字符,并跳过其他字符。

challenge icon

挑战

简单

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' 会将其熄灭
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输入中的所有课

自己练习: Arduino 在线编辑器