ESP32-C3实现GPIO输入-判断高低电平
在 ESP32-C3 上实现 GPIO 输入并判断电平状态相对简单。以下是如何在 Arduino IDE 中配置 GPIO 作为输入,并在循环中检查电平状态的步骤:
1. 定义 GPIO 管脚
首先,定义你将要使用的 GPIO 管脚号。
#define GPIO_INPUT_PIN 2 // 定义一个 GPIO 管脚作为输入
2. 初始化 GPIO
在 setup()
函数中,配置该 GPIO 管脚为输入模式。
void setup() {pinMode(GPIO_INPUT_PIN, INPUT); // 设置 GPIO 管脚为输入模式
}
3. 检查电平状态
在 loop()
函数中,使用 digitalRead()
函数检查 GPIO 管脚的电平状态。
void loop() {// 读取 GPIO 管脚的电平状态int pinState = digitalRead(GPIO_INPUT_PIN);// 根据电平状态执行操作if (pinState == HIGH) {// 如果电平为高Serial.println("GPIO pin is HIGH");} else {// 如果电平为低Serial.println("GPIO pin is LOW");}// 为了防止串口输出过快,可以添加一个小的延迟delay(1000);
}
必要时可以使用上拉和下拉前提时板子支持
-
添加上拉/下拉电阻
pinMode(ADCPIN, INPUT_PULLUP); // 使用内部上拉电阻 // 或者使用外部上拉电阻连接到VCC // pinMode(ADCPIN, INPUT_PULLDOWN); // 使用内部下拉电阻(如果支持) // 或者使用外部下拉电阻连接到GND
完整源码
#define GPIO_INPUT_PIN 2 // 定义一个 GPIO 管脚作为输入void setup() {// 初始化串口Serial.begin(115200);// 设置 GPIO 管脚为输入模式pinMode(GPIO_INPUT_PIN, INPUT);
}void loop() {// 读取 GPIO 管脚的电平状态int pinState = digitalRead(GPIO_INPUT_PIN);// 根据电平状态执行操作if (pinState == HIGH) {// 如果电平为高Serial.println("GPIO pin is HIGH");} else {// 如果电平为低Serial.println("GPIO pin is LOW");}// 延迟,以避免输出过快delay(1000);
}