1.ESP32 是一款国产芯片,这个芯片专为移动设备、可穿戴设备与物联网应用而设计,集成了低功耗蓝牙和 Wi-Fi。这里我主要为大家讲解一下怎么灵活的运用esp32的串口通信实现不同的功能。我们使用的esp32引脚图如下
2.我们这里使用Arduino开发工具,因为他便捷灵活、方便上手,并且他支持许多不同的开发板,例如 ESP32、ESP8266等,同时大家也可以利用VSCode中的PlatformIO开发。
3.接下来是主要的代码
#define LED 2
#define BUTTON 0
// 定义 BUTTON 逻辑值
int a=0;
// 判断 LED 的状态是否改变过
void ISR(){
a=1;
}
void setup() {
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT_PULLDOWN);
Serial.begin(9600);
Serial2.begin(9600);
attachInterrupt(digitalPinToInterrupt(BUTTON), ISR, FALLING);
}
void loop() {
// 按键消抖
if (!digitalRead(BUTTON)) {
// 睡眠 10ms,如果依然为高电平,说明抖动已消失。
delay(700);
if (!digitalRead(BUTTON) && a) {
Serial.print("alarm ");
a=!a;
}
else if (digitalRead(BUTTON)&&a) {
Serial.print("hello ");
a=!a;
}
}
if(Serial2.available()>0){
char date=Serial2.read();
switch(date){
case '0':
digitalWrite(LED,LOW);
Serial2.println("Led is off now.");
break;
case '1':
digitalWrite(LED,HIGH);
Serial2.println("Led is light now.");
break;
default:
Serial2.println("This oeder is error");
break;
}
}
}