`
anlx27
  • 浏览: 496612 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

PWR 里standby MODE 和 RTC关系

阅读更多

    刚接触PWR的内容,使用手册说的不太能让我好理解。其实当你弄懂了以后再回去看使用手册还是能找到的,只是写的过于简略,对于初学者很多地方理解不到位。

 

    这个小总结完全从初学者角度,目的只有一个:进入/唤醒 PWR的standby模式。其实更多的是如何配置进入,唤醒基本上是配置好了后自动完成或硬件出发的,我们需要做的退出后的设计。这块内容暂不作为本次讨论内容。

 

一 低功耗模式简介

NVIC  和 PWR 各寄存器状态决定三种低功耗模式:

 

 

低功耗模式一览表

 



 PS: STM32F的NRST是异步复位脚。
         当NRST输入低电平的时候,MCU处于复位状态,重设所有的内部寄存器,及片内几十KB的SRAM。
         当NRST从低电平变高时,PC指针从0地址开始。
         但是复位的时候不会将STM32F片内RTC的寄存器以及后备存储器重置,因为它们是用电池通过专门的VBAT脚供电。
          STM32中的NRST有施密特功能。大概在输入电压低于1.9V的时候将芯片复位。

 

这里重点说standby模式

 



 

设置stm32 进入standby模式需要

 

1 PWR配置

   a-- RCC配置时候开启 PWR、BKP时钟

         /* Enable PWR and BKP clock */
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

 

   b-- 允许 PWR唤醒

           /* Enable WKUP pin */
         PWR_WakeUpPinCmd(ENABLE);

 

    c-- 允许 进入备份域 (为什么需要这样,下文详解)

           /* Allow access to BKP Domain */
         PWR_BackupAccessCmd(ENABLE);

 

2 进入中断

      PWR_EnterSTANDBYMode();

 

这一句话完成了表7里  standby MODE  "操作"  的内容

void PWR_EnterSTANDBYMode(void)
{
  /* Clear Wake-up flag */

   PWR->CR |= CR_CWUF_Set;

 

  /* Select STANDBY mode */ ----PDDS位
  PWR->CR |= CR_PDDS_Set;

 

  /* Set SLEEPDEEP bit of Cortex System Control Register */ ----sleepdeep位
  *(vu32 *) SCB_SysCtrl |= SysCtrl_SLEEPDEEP_Set;

 

  /* Request Wait For Interrupt */
  __WFI(); ----wfi

}

 

 

从standby 模式唤醒

 表7、表11中都可知从standby 模式中唤醒的方式有四种

    RTC闹钟

    WKUP引脚上升沿

    NRST上引脚外部复位

    IWDG 复位

 

下图解释了我最初的不明白---RTC 和standby什么联系

 

 

 

 



 
 

  • 大小: 30.9 KB
  • 大小: 82.3 KB
  • 大小: 76.3 KB
  • 大小: 45.5 KB
  • 大小: 87.1 KB
0
0
分享到:
评论

相关推荐

    STM32G071低功耗模式进入退出(RTC和按键)

    在本文中,我们将深入探讨如何利用STM32G071的HAL库来实现待机模式(Standby Mode)和关闭模式(Shutdown Mode)的进入与退出,以及如何利用RTC(R现实生活时间计数器)和唤醒引脚(Wakeup Pin)来管理这些低功耗状态。...

    STM32lL系列芯片使用RTC唤醒三种低功耗代码

    3. **待机模式(Standby Mode)**:这是STM32的最低功耗模式,除了备份区域(包括RTC)之外的所有电路都停止工作,SRAM内容丢失。RTC唤醒机制在此模式下同样有效,当RTC闹钟事件触发,系统会从待机模式唤醒,恢复...

    Standby-mode-on-the-STM32.rar_cson stm32_standby_stm32 standby_

    3. **进入standby模式**:通过调用`HAL_PWR_EnterSTANDBYMode()`函数,STM32可以进入standby模式。在进入standby模式之前,应确保保存所有必要的数据,并关闭不需要的外设。 4. **中断服务程序(ISRs)**:在`stm32...

    39-STM32F429_LOW_POWER_MODE_STANDBY.7z

    在待机模式(STANDBY)中,这是功耗最低的状态,CPU、内存以及所有的外设都会被切断电源,仅保留RTC(实时时钟)和备份域的供电。待机模式通常用于需要长时间休眠并快速唤醒的应用场景,如可穿戴设备、远程传感器等...

    combine.zip

    STM32是一款基于ARM Cortex-M内核的...总的来说,这个项目提供了一个实用的STM32 RTC唤醒Standby模式的模板,通过深入理解RTC的工作原理和Keil5的使用方法,你可以在此基础上进行各种定制,适应不同的低功耗应用场景。

    STM32F429单片机的外设例程 39-STM32F429_LOW_POWER_MODE_

    2. STOP模式:在STOP模式下,CPU、内存和大部分外设都被关闭,只有RTC(实时计时器)、唤醒定时器和一些低功耗寄存器保持工作。此模式下的电流消耗显著减少,适用于长时间待机的情况。可以通过配置不同的电源控制...

    39-STM32F429_LOW_POWER_MODE_SLEEP.7z

    STANDBY模式是最深的低功耗模式,几乎所有的电源域都被关闭,只有备份域(包含RTC和一些备份寄存器)保持供电。STM32F429进入STANDBY模式后,只能通过复位事件唤醒,这适用于需要极低功耗且唤醒速度不敏感的应用。 ...

    STM32F767实现低功耗休眠待机唤醒【支持STM32F7系列单片机_HAL库驱动】.zip

    - `HAL_PWR_EnterSTOPMode(PWR_LOW_POWER_MODE_STOP0, PWR_MAINREGULATOR_ON)`:进入STOP模式,可以选择不同的STOP子模式和主稳压器状态。 在项目中,通过移植和调测代码,我们可以实现MCU在完成任务后自动进入低...

    stm32l151低功耗芯片待机测试例程

    STM32L151系列微控制器拥有多种低功耗模式,包括STOP、STANDBY和休眠模式。其中,STOP模式下,CPU停止工作,外设时钟停止,但SRAM内容保留;STANDBY模式则更为省电,电源电压降低,几乎所有的电路都被断电,只有备份...

    【STM32】HAL库-待机模式-WKUP唤醒demo

    待机模式(STANDBY)是其中功耗最低的一种,CPU、总线矩阵、寄存器以及所有外设的电源都会被切断,仅保留RTC时钟和唤醒电路。待机模式下,系统可以通过外部中断或RTC事件唤醒。 在本示例中,PA0引脚被配置为唤醒...

    Low-Power-master_atmega328p_源码

    1. **设置睡眠模式**:使用`set_sleep_mode()`函数选择合适的低功耗模式,如`SLEEP_MODE_PWR_DOWN`,进入STANDBY模式。 2. **关闭不必要的外设**:在进入睡眠前,关闭未使用的定时器、串口等外设,减少电流消耗。 ...

    ST固件库(V3.4.0)

    - **Mode_Privilege**: 演示如何切换处理器的工作模式,包括特权模式和用户模式。 #### 6. CRC (循环冗余校验) - **CRC**: 展示CRC计算方法及其在数据完整性验证中的应用。 #### 7. DAC (数模转换器) - **...

Global site tag (gtag.js) - Google Analytics