在STM32的STOP模式下,USART唤醒需要依赖其内部时钟(如LSE或HSI)保持运行,因为STOP模式会关闭主时钟。可靠唤醒的关键是配置USART为“地址匹配唤醒”或“起始位唤醒”,并确保唤醒源中断(如RXNE)在低功耗模式下被使能。具体步骤:1)将USART时钟源设为LSE(如32.768kHz),并开启USART的时钟;2)配置USART为异步模式,使能接收和中断;3)在进入STOP前,设置EXTI线连接到USART的唤醒事件(如通过USART_WAKEUP引脚或内部事件),并配置NVIC;4)使用WFI或WFE进入STOP,并确保唤醒后重新配置系统时钟(如HSE)。避免误触发:启用地址匹配模式(如只唤醒特定地址字节),或使用起始位检测并加软件滤波(如检查后续字节)。实操建议:在唤醒中断中先清除标志,再重新初始化时钟和外设,并测试不同波特率下的稳定性。
mcuku 阿沐 · 2026-08-27