[其他ST产品] 单片机进入待机模式休眠,唤醒后程序没有复位

[复制链接]
2178|16
 楼主| probedog 发表于 2024-8-16 16:30 | 显示全部楼层 |阅读模式
STM32U585OIY6Q单片机,进入待机模式之后由RTCwakeup唤醒,但很奇怪的是没有复位,而是继续向下运行代码
铁血丹心LLLL 发表于 2024-8-28 01:02 | 显示全部楼层
RTC唤醒是常见的应用场景
铁血丹心LLLL 发表于 2024-8-28 01:04 | 显示全部楼层
STM32的待机模式会在唤醒时保留某些寄存器和系统状态。
铁血丹心LLLL 发表于 2024-8-28 01:04 | 显示全部楼层
如果你的代码没有正确处理这些状态,可能会出现你描述的问题。检查是否有适当的复位处理逻辑,特别是在从待机模式唤醒后。
烟雨蒙蒙520 发表于 2024-8-28 12:12 | 显示全部楼层
在待机模式下,RTC(实时时钟)可以被配置为唤醒源。
烟雨蒙蒙520 发表于 2024-8-28 12:13 | 显示全部楼层
如果你希望在从待机模式唤醒后执行系统复位,可以在待机模式的唤醒处理代码中添加主动复位的逻辑。可以使用独立看门狗触发系统复位。
公羊子丹 发表于 2025-3-16 07:50 | 显示全部楼层
STM32 的待机模式进入后通常不会完全复位,而是保留部分寄存器状态,继续运行代码。如果需要完全复位,可以考虑使用 独立看门狗 或 外部复位信号 来强制复位。
周半梅 发表于 2025-3-16 07:51 | 显示全部楼层
可以检查一下 RTC 唤醒时,是否正确设置了 Wakeup flag,有时候忘记清除标志会导致唤醒后没有复位。
帛灿灿 发表于 2025-3-16 07:53 | 显示全部楼层
如果你希望在唤醒后能有一个完全的程序复位,可以试试在唤醒后手动触发 系统复位(例如使用 NVIC_SystemReset())。
童雨竹 发表于 2025-3-16 07:55 | 显示全部楼层
在 STM32 的低功耗模式下,程序继续执行而不复位是正常行为,系统保持当前的执行状态。你可以通过重新启动或清除相关标志来达到复位效果。
万图 发表于 2025-3-16 07:56 | 显示全部楼层
你可以检查一下待机模式进入前是否有正确配置时钟源,唤醒后时钟源是否已恢复。
Wordsworth 发表于 2025-3-16 07:57 | 显示全部楼层
试试在进入待机模式前设置 SLEEPONEXIT 位,这样 MCU 会在退出待机模式后强制复位。
Bblythe 发表于 2025-3-16 07:58 | 显示全部楼层
唤醒后没有复位的情况可能和配置的 RTC 定时器相关,检查 RTC 相关的中断和寄存器设置。
Pulitzer 发表于 2025-3-16 07:59 | 显示全部楼层
如果程序没有如预期复位,可以通过在唤醒后检查特定寄存器(如 PWR_CR)状态来诊断问题。
Uriah 发表于 2025-3-16 08:00 | 显示全部楼层
进入待机模式时,确认是否禁用了必要的外设时钟,唤醒后需要保证时钟配置恢复正常。
Clyde011 发表于 2025-3-16 08:01 | 显示全部楼层
如果在唤醒时不希望程序继续执行,可以通过给某个控制寄存器设置特定值,强制触发复位,确保程序重新初始化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

493

主题

3361

帖子

4

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