云原生与 AI 驱动下的数据工程新图景——解读 DZone 数据工程趋势报告【附报告下载】
2026/7/27 6:09:14
ESP32-S3 支持多种中断源:
| 中断类型 | 说明 | 典型用途 |
|---|---|---|
| GPIO 中断 | 引脚电平变化触发 | 按键检测、传感器信号 |
| 定时器中断 | 定时器溢出触发 | 周期采样、精确计时 |
| UART 中断 | 串口数据到达触发 | 异步接收数据 |
| WiFi 事件 | 连接/断开等事件触发 | 网络状态响应 |
| BLE 事件 | 连接/写入等事件触发 | 蓝牙数据响应 |
ESP32-S3 的 GPIO 中断支持多种触发方式:
| 触发方式 | 说明 |
|---|---|
| 上升沿 | 低→高时触发 |
| 下降沿 | 高→低时触发 |
| 双边沿 | 任意电平变化时触发 |
| 高电平 | 电平为高时触发 |
| 低电平 | 电平为低时触发 |
当启动时 ├─ 初始化引脚 GPIO2 为 推挽输出 ├─ 初始化引脚 GPIO4 为 输入上拉 ├─ 设置引脚 GPIO4 中断 下降沿 → on_button_press └─ 永远重复 └─ 延时 1000 毫秒 (主循环可以做其他事情) 定义函数 on_button_press └─ 翻转引脚 GPIO2 电平#include"driver/gpio.h"#include"freertos/FreeRTOS.h"#include"freertos/task.h"#defineLED_GPIO2#defineBUTTON_GPIO4staticvoidIRAM_ATTRbutton_isr_handler(void*arg){intlevel=gpio_get_level(LED_GPIO);gpio_set_level(LED_GPIO,!level);}voidapp_main(void){gpio_config_tio_conf={.pin_bit_mask=(1ULL<<LED_GPIO),.mode=GPIO_MODE_OUTPUT,.intr_type=GPIO_INTR_DISABLE,};gpio_config(&io_conf);io_conf.pin_bit_mask=(1ULL<<BUTTON_GPIO);io_conf.mode=GPIO_MODE_INPUT;io_conf.intr_type=GPIO_INTR_NEGEDGE;io_conf.pull_up_en=GPIO_PULLUP_ENABLE;gpio_config(&