STM32外部中断在低功耗模式下误触发的根因通常有三类:一是低功耗切换瞬间GPIO电平未稳定,EXTI边沿检测器在电源域切换时捕获到毛刺;二是未使用的EXTI线悬空或配置为浮空输入,在STOP模式下施密特触发器供电变化导致误判;三是唤醒后时钟未稳定就清中断标志,导致挂起位残留再次触发。规避方法:进入低功耗前将未用EXTI线配置为模拟输入或上/下拉,避免浮空;对唤醒源引脚加RC滤波(如10k+100nF)并确保电平在进入STOP前稳定至少1个APB周期;使用HAL_PWREx_EnableInternalWakeUpLine或清除挂起寄存器前先关闭EXTI中断使能,唤醒后重新配置;在进入STOP前调用__HAL_GPIO_EXTI_CLEAR_IT清除可能残留的标志,并在唤醒后延时等待HSI稳定再开中断。实测中建议用DBGMCU在低功耗下冻结调试并配合电流波形定位误触发时刻。
mcuku 阿沐 · 2026-10-21