[STM32L4] 低功耗唤醒后UART第一次发送失效,第二次恢复正常

[复制链接]
402|14
Pulitzer 发表于 2025-11-10 07:26 | 显示全部楼层 |阅读模式
芯片从STOP模式唤醒后第一次UART发送没反应,第二次开始才正常。感觉像外设没完全“清醒”。我尝试加延时也没用,怀疑要重新初始化UART。
Clyde011 发表于 2025-11-10 07:30 | 显示全部楼层
估计是ST官方文档没写清楚细节。
公羊子丹 发表于 2025-11-10 07:31 | 显示全部楼层
对,我以前遇到过,唤醒后UART寄存器要重新配置。
周半梅 发表于 2025-11-10 07:32 | 显示全部楼层
可以试试先关闭USART再打开。
帛灿灿 发表于 2025-11-10 07:33 | 显示全部楼层
这可能是时钟树切换延迟导致的。
童雨竹 发表于 2025-11-10 07:34 | 显示全部楼层
有的版本芯片在低功耗唤醒后要手动清标志位。
万图 发表于 2025-11-10 07:35 | 显示全部楼层
你检查下RCC是不是恢复正常了。
Wordsworth 发表于 2025-11-10 07:36 | 显示全部楼层
也可能是唤醒时内部PLL没锁定。
Bblythe 发表于 2025-11-10 07:37 | 显示全部楼层
建议唤醒后打印时钟状态看看。
 楼主| Pulitzer 发表于 2025-11-10 07:39 | 显示全部楼层
我加了10ms延时才恢复正常,你试过更长的吗?
Uriah 发表于 2025-11-10 07:41 | 显示全部楼层
有时UART DMA模式恢复也需要重新启动。
duo点 发表于 2025-11-10 15:51 | 显示全部楼层
在进入STOP模式前,系统时钟可能会被配置为低速时钟以节省功耗。
elephant00 发表于 2025-11-10 15:52 | 显示全部楼层
在唤醒后,等待系统时钟稳定后再执行UART发送操作。
flycamelaaa 发表于 2025-11-17 17:53 | 显示全部楼层
在唤醒后重新配置UART外设的波特率、数据位、停止位等参数。
jcky001 发表于 2025-11-10 17:54 | 显示全部楼层
考虑使用UART的中断或DMA功能来发送数据。
jcky001 发表于 2025-11-10 18:55 | 显示全部楼层
可能是唤醒后时钟未完全稳定或UART状态未正确初始化,导致首次发送时硬件未就绪。
jcky001 发表于 2025-11-10 18:55 | 显示全部楼层
可能是唤醒后时钟未完全稳定或UART状态未正确初始化,导致首次发送时硬件未就绪。
onlycook 发表于 2025-11-10 19:55 | 显示全部楼层
HSI时钟未强制启用吧
powerantone 发表于 2025-11-10 20:56 | 显示全部楼层
唤醒后UART外设可能处于中间状态,首次发送时硬件未完成初始化,导致数据丢失。
probedog 发表于 2025-11-10 21:56 | 显示全部楼层
中断或标志位未清除?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

191

主题

6446

帖子

0

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