gpt4 book ai didi

timer - STM32 通过 RTC 从待机状态唤醒

转载 作者:行者123 更新时间:2023-12-04 10:23:21 26 4
gpt4 key购买 nike

我正在编写 STM32L051R8 并且有下一个问题。我大部分时间都在尝试使用待机模式,有时通过 RTC 唤醒,它是自动唤醒。如果我在没有 sleep 的情况下工作 - 一切正常,我每次都会收到 RTC 中断,但是当我使用待机时 - 不要。

如果我使用待机,我有一个很好的第一个周期:

  • 重置
  • 设置 RTC
  • 进入待机
  • 等待中断
  • 唤醒

  • 但是第二个和下一个周期在进入待机(3)后立即唤醒。

    最佳答案

    当微 Controller 处于待机模式且 RTC 中断发生时 WUF:唤醒标志 将由 PWR control/status register 中的硬件设置(第 162 页)。

    Bit 0 WUF: Wakeup flag

    This bit is set by hardware and cleared by asystem reset or by setting the CWUF bit in the PWR power controlregister (PWR_CR)

    0: No wakeup event occurred

    1: A wakeup event wasreceived from the WKUP pin or from the RTC alarm (Alarm A or Alarm B),RTC Tamper event, RTC TimeStamp event or RTC Wakeup).


    最初这会通过系统重置清除,这就是您的第一个周期正常的原因。但是从待机状态唤醒后,您必须使用 PWR 控制寄存器中的 CWUF 位手动清除它。如果您不这样做,那么 Controller 将立即唤醒,因为该位表示发生了唤醒事件。
    您可以直接访问寄存器以设置该位或使用 HAL 库,可以使用以下宏:
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

    关于timer - STM32 通过 RTC 从待机状态唤醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205997/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com