在 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);
}