打印
[其他ST产品]

单片机进入待机模式休眠,唤醒后程序没有复位

[复制链接]
1616|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 | 只看该作者
如果你的代码没有正确处理这些状态,可能会出现你描述的问题。检查是否有适当的复位处理逻辑,特别是在从待机模式唤醒后。

使用特权

评论回复
5
烟雨蒙蒙520| | 2024-8-28 12:12 | 只看该作者
在待机模式下,RTC(实时时钟)可以被配置为唤醒源。

使用特权

评论回复
6
烟雨蒙蒙520| | 2024-8-28 12:13 | 只看该作者
如果你希望在从待机模式唤醒后执行系统复位,可以在待机模式的唤醒处理代码中添加主动复位的逻辑。可以使用独立看门狗触发系统复位。

使用特权

评论回复
7
公羊子丹| | 2025-3-16 07:50 | 只看该作者
STM32 的待机模式进入后通常不会完全复位,而是保留部分寄存器状态,继续运行代码。如果需要完全复位,可以考虑使用 独立看门狗 或 外部复位信号 来强制复位。

使用特权

评论回复
8
周半梅| | 2025-3-16 07:51 | 只看该作者
可以检查一下 RTC 唤醒时,是否正确设置了 Wakeup flag,有时候忘记清除标志会导致唤醒后没有复位。

使用特权

评论回复
9
帛灿灿| | 2025-3-16 07:53 | 只看该作者
如果你希望在唤醒后能有一个完全的程序复位,可以试试在唤醒后手动触发 系统复位(例如使用 NVIC_SystemReset())。

使用特权

评论回复
10
童雨竹| | 2025-3-16 07:55 | 只看该作者
在 STM32 的低功耗模式下,程序继续执行而不复位是正常行为,系统保持当前的执行状态。你可以通过重新启动或清除相关标志来达到复位效果。

使用特权

评论回复
11
万图| | 2025-3-16 07:56 | 只看该作者
你可以检查一下待机模式进入前是否有正确配置时钟源,唤醒后时钟源是否已恢复。

使用特权

评论回复
12
Wordsworth| | 2025-3-16 07:57 | 只看该作者
试试在进入待机模式前设置 SLEEPONEXIT 位,这样 MCU 会在退出待机模式后强制复位。

使用特权

评论回复
13
Bblythe| | 2025-3-16 07:58 | 只看该作者
唤醒后没有复位的情况可能和配置的 RTC 定时器相关,检查 RTC 相关的中断和寄存器设置。

使用特权

评论回复
14
Pulitzer| | 2025-3-16 07:59 | 只看该作者
如果程序没有如预期复位,可以通过在唤醒后检查特定寄存器(如 PWR_CR)状态来诊断问题。

使用特权

评论回复
15
Uriah| | 2025-3-16 08:00 | 只看该作者
进入待机模式时,确认是否禁用了必要的外设时钟,唤醒后需要保证时钟配置恢复正常。

使用特权

评论回复
16
Clyde011| | 2025-3-16 08:01 | 只看该作者
如果在唤醒时不希望程序继续执行,可以通过给某个控制寄存器设置特定值,强制触发复位,确保程序重新初始化。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

2783

帖子

3

粉丝