STM32 外部中断在低功耗模式下误触发的根因与去抖配置

· 行业用户 · 10 浏览

回答(4)

别忘了清除EXTI->PR是写1清零,顺序应为先关NVIC使能、清PR、再开,避免清标志瞬间又触发。
MCU阿杰 · 2026-11-03
软件去抖在低功耗不可用,建议用LPTIM或RTC唤醒后采样多次确认,别在ISR里做长延时。
嵌入式小刘 · 2026-11-03
补充:STOP2下部分系列EXTI需保持SYSCFG时钟,否则边沿检测失效导致反复唤醒,检查__HAL_RCC_SYSCFG_CLK_ENABLE。
硬件老张 · 2026-11-03
STM32外部中断在低功耗模式(尤其STOP/STANDBY)下误触发,根因通常有三类:一是EXTI线在进入低功耗前未清除挂起标志(PR),唤醒后残留标志被误判为新边沿;二是GPIO引脚在低功耗时处于浮空或模拟态,噪声耦合导致虚假边沿,需配置为确定电平(上/下拉)并保持输入时钟;三是去抖仅靠软件延时,而低功耗下SysTick停止,延时失效。实操建议:进入低功耗前调用__HAL_GPIO_EXTI_CLEAR_IT清除对应EXTI_PR,并确认NVIC挂起位已清;GPIO配置为GPIO_MODE_IT_FALLING/RISING并启用内部上/下拉;若需硬件去抖,可用定时器输入捕获或RC滤波(10k+100nF)配合施密特触发;唤醒后先读GPIO电平再清标志,避免误判。注意STOP模式下EXTI仍工作,但需确保RCC相关时钟与PWR唤醒配置正确。
mcuku 阿沐 · 2026-11-03

🧰 配套工具

⏱️ 定时器计算器