二十、待机唤醒实验

目录

一、stm32的三种低功耗模式

1)三种模式的介绍

二、最低功耗模式-待机模式介绍

1.如何进入待机模式

三、寄存器的介绍

1.电源控制寄存器(PWR_CR)

2.电源控制/状态寄存器(PWR_CSR)

四、函数的配置

1)使能电源时钟。

2) 设置 WK_UP 引脚作为唤醒源。

 3)设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式。

4)最后编写 WK_UP 中断函数。


一、stm32的三种低功耗模式

1)三种模式的介绍

1.睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。

2.停止模式:所有时钟都已停止。1.8V内核电源工作。PLL,HIS和HSE RC振荡器功能禁止。寄存器和SRAM内容保留。

3.待机模式:1.8V内核电源关闭。只有备份寄存器和待机电路维持供电。寄存器和SRAM内容全部丢失。实现最低功耗。

   

在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要 2uA 左右的电
流。停机模式是次低功耗的,其典型的电流消耗在 20uA 左右。最后就是睡眠模式了。用户可

以根据自己的需求来决定使用哪种低功耗模式。

二、最低功耗模式-待机模式介绍

待机模式可实现 STM32 的最低功耗。该模式是在CM3 深睡眠模式时关闭电压调节器。整个 1.8V 供电区域被断电。 PLL 、 HSI和 HSE 振荡器也被断电。 SRAM 和寄存器内容丢失。仅备份的寄存器和待机电路维持供电。

1.如何进入待机模式

 

  还列出了退出待机模式的操作,从图   可知,我们有 4 种方式可以退出待机
模式,即当一个外部复位 (NRST 引脚 ) IWDG 复位、 WKUP 引脚上的上升沿或 RTC 闹钟事件

发生时,微控制器从待机模式退出。从待机唤醒后,除了电源控制/状态寄存器(PWR_CSR),所有寄存器被复位。

从待机模式唤醒后的代码执行等同于复位后的执行 ( 采样启动模式引脚,读取复位向量等 )
电源控制 / 状态寄存器 (PWR_CSR) 将会指示内核由待机状态退出。
在进入待机模式后,除了复位引脚以及被设置为防侵入或校准输出时的 TAMPER 引脚和被
使能的唤醒引脚( WK_UP 脚),其他的 IO 引脚都将处于高阻态。

三、寄存器的介绍

1.电源控制寄存器(PWR_CR

 这里我们通过设置 PWR_CR PDDS 位,使 CPU 进入深度睡眠时进入待机模式,同时通过 CWUF 位,清除之前的唤醒位。

2.电源控制/状态寄存器(PWR_CSR

这里,我们通过设置 PWR_CSR EWUP 位,来使能 WKUP 引脚用于待机模式唤醒。还可以从 WUF 来检查是否发生了唤醒事件。不过本章并没有用到。

四、函数的配置

1)使能电源时钟。

因为要配置电源控制寄存器,所以必须先使能电源时钟。
在库函数中,使能电源时钟的方法是:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能 PWR 外设时钟
这个函数非常容易理解。

2) 设置 WK_UP 引脚作为唤醒源。

使能时钟之后后再设置 PWR_CSR EWUP 位,使能 WK_UP 用于将 CPU 从待机模式唤
醒。在库函数中,设置使能 WK_UP 用于唤醒 CPU 待机模式的函数是:
PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚功能

 3)设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式。

进入待机模式,首先要设置 SLEEPDEEP 位( 该位在系统控制寄存器( SCB_SCR )的第
二位,详见《 CM3 权威指南》,第 182 页表 13.1 ), 接着我们通过 PWR_CR 设置 PDDS 位,使
CPU 进入深度睡眠时进入待机模式,最后执行 WFI 指令开始进入待机模式,并等待 WK_UP
中断的到来。在库函数中,进行上面三个功能进入待机模式是在函数 PWR_EnterSTANDBYMode
中实现的:
void PWR_EnterSTANDBYMode(void);

4)最后编写 WK_UP 中断函数。

因为我们通过 WK_UP 中断( PA0 中断)来唤醒 CPU ,所以我们有必要设置一下该中断函
数,同时我们也通过该函数里面进入待机模式。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值