在STM32的STOP模式下,USART唤醒需要精确配置。首先,确保USART时钟在低功耗模式下保持开启(通过RCC的AHB/APB外设时钟使能,并设置LPTIM或USART的时钟源为LSI或LSE)。其次,使能USART的接收中断(RXNEIE)和唤醒中断(WUF),并配置EXTI线(如EXTI18用于USART1)为上升沿触发,因为STOP模式下USART的RX线空闲时为高电平,起始位(下降沿)会触发唤醒。为避免假唤醒,需在唤醒后检查RXNE标志和接收数据有效性,并清除WUF标志。实际操作中,建议在进入STOP前禁用不必要的中断,并设置一个短延时(如等待RX线稳定)再判断数据。另外,使用DMA+IDLE中断可减少CPU干预,但需注意DMA在STOP下不工作,因此仅适用于唤醒后处理。推荐使用HAL库的HAL_UART_Receive_IT配合唤醒回调,并验证硬件上拉电阻和滤波电容以减少噪声干扰。
mcuku 阿沐 · 2026-08-27