使用串口通信
使用串口通信可以使用内置的Serial对象, 内有丰富的函数来实现串口通信
使用串口通信控制LED的开关
#define LED 2 // LED的针脚为GPIO2
void setup() {
Serial.begin(9600); // 初始化串口通信,波特率为9600
Serial.println("Hello, XianLin"); // 向串口发送消息
pinMode(LED, OUTPUT); // 将LED的针脚设置为输出模式
}
void loop() {
if (Serial.available() > 0) { // 如果串口有数据可读
char incomingByte = Serial.read(); // 读取数据
Serial.print("Received message: "); // 在串口上打印接收到的消息
Serial.println(incomingByte);
// 如果收到"1"则开灯, 收到0则关灯
if (incomingByte == 49) { // // "1"的ASCII码是49
Serial.println("开灯");
digitalWrite(LED, HIGH); // 则点亮LED。
} else if (incomingByte == 48) { // "0"的ASCII码是48
Serial.println("关灯");
digitalWrite(LED, LOW); // 否则熄灭LED。
}
}
}
这段代码是用来控制ESP32的GPIO2口连接的LED灯,通过串口通信控制LED灯的开关。
在使用串口通信时,需要在Arduino IDE或串口工具中设置相同的波特率(这里是9600)。
在setup()函数中,将GPIO2口设置为输出模式,以便能够控制LED灯的开关。
在loop()函数中,通过Serial.available()函数判断串口上是否有数据可读。如果有,使用Serial.read()函数读取数据。
读取到的数据是char类型,可以通过ASCII码对应的数字进行判断,如果是"1"则打开LED灯,如果是"0"则关闭LED灯。
在Serial.print()函数和Serial.println()函数中,使用双引号将要发送的消息括起来。