You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32深度睡眠下GPIO32触发ext0唤醒时是否会触发对应中断?

ESP32深度睡眠唤醒时是否触发GPIO中断服务程序?

问题场景

我使用esp_sleep_enable_ext0_wakeup(GPIO32, 0)实现ESP32的唤醒功能,同时为GPIO32挂载了一个中断服务程序(ISR),该程序仅实现计数器功能:

void IRAM_ATTR its_raining_isr() { rain_counter++; }

我的问题并非针对代码本身,而是ESP32在此场景下的行为:当处于深度睡眠状态且GPIO32变为低电平时,设备会被唤醒,但此时是否会触发我挂载到GPIO32的中断服务程序?

解答

不会触发你挂载的这个中断服务程序。

ESP32进入深度睡眠后,除了负责唤醒的专用硬件电路外,CPU核心、大部分外设都会断电,之前注册的GPIO中断配置和ISR会完全失效。ext0唤醒是由独立的唤醒检测电路触发的,这个过程不会执行任何用户态的中断服务程序。

设备被唤醒后,系统会重新启动并执行初始化流程,如果你需要GPIO32后续的电平变化能触发ISR,必须在唤醒后的初始化代码里重新注册该中断服务程序。

内容的提问来源于stack exchange,提问作者briansmith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 12:55:56