stm32芯片休眠模式_stm32实现待机唤醒

本文详细介绍了STM32芯片的低功耗模式,重点讲解如何进入待机模式以及通过WK_UP引脚实现待机唤醒。通过设置SLEEPDEEP位,使能电源时钟,配置唤醒源和PDDS位,执行WFI指令进入待机模式。同时,提供了进入待机模式的代码示例和WK_UP键的初始化方法,确保芯片能根据长按事件正确地在待机和运行状态之间切换。
摘要由CSDN通过智能技术生成

STM32的低功耗模式有3种:

1、睡眠模式(CM3内核停止,外设仍然运行)

2、停机模式(所有时钟都停止)

3、待机模式(1.8v内核电源关闭)

进入待机模式的方法,以及设置WK_UP引脚用于把STM32从待机模式唤醒的方法

一般步骤如下:

1、设置SLEEPDEEP位

SCB_SCR的第二位

2、使能电源时钟,设置WK_UP引脚作为唤醒源

因为要配置电源控制寄存器,所以必须先使能电源时钟。然后再设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。

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

通过 PWR_CR 设置 PDDS 位,使得 CPU 进入深度睡眠时待机模式,最后执行 WFI指令开始进入待机模式,并等WK_UP中断的到来

4、最后编写WK_UP中断函数

下面是进入待机模式的代码

//进入待机模式

void STAND_By(void){

SCB->SCR |= 1<<2; //设置SLEEPDEEP位

RCC->APB1ENR |= 1<<28;//使能电源时钟

PWR->CSR |= 1<<8; //设置WK_UP作为唤醒源

PWR->CR |= 1<<1; //设置PDDS位,进入深睡眠模式

PWR->CR |= 1<<2; //清除唤醒位

__ASM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值