跳转至

按键(中断方式)笔记

介绍

Note

在本节中,我们将讨论desp32s3m开发板上的板载按键,为了方便起见,该按键不使用阻塞模式,而是用于中断模式。我们使用外部中断来检测按键按下。实际上我们本章讨论的是中断,但是载体是按键。

按键

KEY

板载电路

KEY_CIRCUIT

依赖关系

dep

关键函数

函数原型 说明 示例
static void IRAM_ATTR exit_gpio_isr_handler(void *arg) 外部中断服务例程,将您希望在检测到事件后执行的操作放在这里 在这里放置您的操作
esp_err_t gpio_install_isr_service(int intr_alloc_flags) 安装驱动程序的GPIO ISR服务,允许您为GPIO引脚注册ISR处理程序 gpio_install_isr_service(0);
esp_err_t gpio_isr_handler_add(gpio_num_t gpio_num, gpio_isr_t isr_handler, void *args) 为GPIO引脚添加处理程序 gpio_isr_handler_add(BOOT_INT_GPIO_PIN, exit_gpio_isr_handler, (void*) BOOT_INT_GPIO_PIN);
esp_err_t gpio_intr_enable(gpio_num_t gpio_num) 启用GPIO中断 gpio_intr_enable(BOOT_INT_GPIO_PIN);

Tip

一旦你设置好了处理函数,你就不需要在主循环中调用该函数,因为一旦检测到事件,中断将自动触发。