首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由RTC从备用状态唤醒STM32

由RTC从备用状态唤醒STM32
EN

Stack Overflow用户
提问于 2017-02-13 14:05:51
回答 1查看 15K关注 0票数 9

我正在编写STM32L051R8程序,并有下一个问题。我尝试在大部分时间使用待机模式,有时被RTC唤醒,这是一种自动唤醒。如果我工作没有睡眠-所有的工作完美,我得到一个RTC中断每次,但当我使用待机-不要。

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

  1. 重置
  2. 设置RTC
  3. 进入待机
  4. 等待中断
  5. 醒醒

但是第二个周期和下一个周期在进入备用(3)后立即醒来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-14 12:20:10

当微控制器处于待机模式并发生RTC中断时,WUF: Wakeup标志将由压水堆控制/状态寄存器中的硬件设置(第162页)。

位0 WUF:唤醒标志 此位由硬件设置,并通过系统复位或在PWR功率控制寄存器(PWR_CR)中设置CWUF位来清除。 0:没有发生唤醒事件 1:从WKUP引脚或从RTC警报(警报A或警报B)、RTC篡改事件、RTC TimeStamp事件或RTC唤醒接收到唤醒事件。

最初,这是通过系统重置来清除的,这就是为什么您的第一个周期是可以的。但是,从备用唤醒之后,您必须使用PWR控制寄存器中的CWUF位手动清除它。如果不这样做,则控制器将立即唤醒,因为此位数指示已发生的唤醒事件。

您可以直接访问寄存器来设置此位,或者使用HAL库可以使用以下宏:

代码语言:javascript
复制
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42205997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档