基于 Arduino IDE 开发环境编写的 ESP32 程序示例:通过串口与电脑通信,按下boot
按键开始以 1Hz 的频率发送学号,再次按下则停止发送
// 引入ESP32的相关库
#include <Arduino.h>
// 定义学号,这里假设学号是123456,你需要替换成你自己的真实学号
const char* studentID = "123456";
// 定义按键引脚,ESP32的boot按键对应的引脚
const int bootPin = 0;
// 用于标记是否正在发送数据
bool isSending = false;
// 上次按键状态
int lastButtonState = HIGH;
// 记录上次发送数据的时间
unsigned long lastSendTime = 0;
// 发送数据的时间间隔,1Hz即1000毫秒
const unsigned long sendInterval = 1000;
void setup() {
// 初始化串口通信,波特率设置为115200
Serial.begin(115200);
// 设置按键引脚为输入模式,并启用内部上拉电阻
pinMode(bootPin, INPUT_PULLUP);
}
void loop() {
// 读取当前按键状态
int buttonState = digitalRead(bootPin);
// 检测按键是否按下(从高电平变为低电平)
if (buttonState == LOW && lastButtonState == HIGH) {
// 切换发送状态
isSending =!isSending;
if (isSending) {
Serial.println("开始发送学号...");
} else {
Serial.println("停止发送学号.");
}
}
// 更新上次按键状态
lastButtonState = buttonState;
// 如果处于发送状态且距离上次发送时间超过了设定的间隔时间
if (isSending && (millis() - lastSendTime >= sendInterval)) {
// 通过串口发送学号
Serial.println(studentID);
// 更新上次发送时间
lastSendTime = millis();
}
}
标签:isSending,ESP32,串口,通信,发送,按键,Serial
From: https://blog.csdn.net/2401_87110829/article/details/143746313