[STM32L4] 低功耗模式唤醒后UART不工作,要重新初始化

[复制链接]
159|19
Wordsworth 发表于 2025-10-16 07:55 | 显示全部楼层 |阅读模式
系统从STOP模式唤醒后,UART发不出数据,HAL库函数都返回OK,但波形没动。必须重新初始化UART才恢复。查了RM说时钟要重新配置,但感觉自己代码里已经处理了。
Clyde011 发表于 2025-10-16 08:00 | 显示全部楼层
可能是LSE没锁相导致时钟源切换失败。
公羊子丹 发表于 2025-10-16 08:01 | 显示全部楼层
我也踩过这个坑,要重新开USART时钟。
周半梅 发表于 2025-10-16 08:02 | 显示全部楼层
L4的STOP模式会关掉外设时钟,不自动恢复。
帛灿灿 发表于 2025-10-16 08:02 | 显示全部楼层
可以在唤醒回调里重新设置波特率。
童雨竹 发表于 2025-10-16 08:04 | 显示全部楼层
检查一下是不是复位标志没清,导致配置没生效。
万图 发表于 2025-10-16 08:05 | 显示全部楼层
我用LL库后就没再出问题,HAL有时候乱。
 楼主| Wordsworth 发表于 2025-10-16 08:05 | 显示全部楼层
用DBGMCU看寄存器状态,会发现时钟真没开。
Bblythe 发表于 2025-10-16 08:06 | 显示全部楼层
有的电源模式会保留寄存器,但时钟被关。
Pulitzer 发表于 2025-10-16 08:07 | 显示全部楼层
我一般唤醒后统一重配所有外设。
Uriah 发表于 2025-10-16 08:08 | 显示全部楼层
你用的是STOP1还是STOP2?两种差别挺大。
powerantone 发表于 2025-10-16 16:40 | 显示全部楼层
STOP模式会关闭部分时钟,唤醒后若未重新配置UART的时钟源,会导致UART外设无时钟驱动。
jcky001 发表于 2025-10-16 17:41 | 显示全部楼层
外设可能未重新使能
onlycook 发表于 2025-10-16 18:41 | 显示全部楼层
若UART使用DMA,STOP模式可能中断DMA传输,唤醒后未重置DMA状态。
probedog 发表于 2025-10-16 19:42 | 显示全部楼层
中断标志未清除?
stormwind123 发表于 2025-10-16 20:43 | 显示全部楼层
HAL库版本有Bug?
七毛钱 发表于 2025-10-16 21:44 | 显示全部楼层
在唤醒回调函数中强制重新初始化UART
今天会画卧蚕吗 发表于 2025-10-16 22:45 | 显示全部楼层
检查GPIO配置,STOP模式可能重置GPIO配置,需在唤醒后恢复为复用功能
故里说长安 发表于 2025-10-16 22:15 | 显示全部楼层
若使用DMA,唤醒后需重新配置DMA通道并清除中断标志
海滨消消 发表于 2025-10-16 18:16 | 显示全部楼层
重新初始化UART
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

6251

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部