STM32开发手册-待机唤醒实验

通过以上介绍,我们了解了进入待机模式的方法,以及设置 KEY_UP 引脚用于把 STM32F4
从待机模式唤醒的方法。低功耗相关操作函数和定义在 HAL 库文件 stm32f4xx_hal_pwr.c 和头
文件 stm32f4xx_hal_pwr.h 中。具体步骤如下:
1 )使能 PWR 时钟。
因为要配置 PWR 寄存器,所以必须先使能 PWR 时钟。
HAL 库中,使能 PWR 时钟的方法是:
__HAL_RCC_PWR_CLK_ENABLE(); // 使能 PWR 时钟
2) 设置 WK_UP 引脚作为唤醒源。
使能时钟之后后再设置 PWR_CSR EWUP 位,使能 WK_UP 用于将 CPU 从待机模式唤
醒。在 HAL 库中,设置使能 WK_UP 用于唤醒 CPU 待机模式的函数是:
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // 设置 WKUP 用于唤醒
3 )设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式。
进入待机模式,首先要设置 SLEEPDEEP 位(详见《 STM32F3 F4 系列 Cortex M4 内核
编程手册》,第 214 4.4.6 节) 接着我们通过 PWR_CR 设置 PDDS 位,使得 CPU 进入深度
睡眠时进入待机模式,最后执行 WFI 指令开始进入待机模式,并等待 WK_UP 中断的到来。在
库函数中,进行上面三个功能进入待机模式是在函数 HAL_PWR_EnterSTANDBYMode 中实现
的:
void HAL_PWR_EnterSTANDBYMode(void);
4 )最后编写 WK_UP 中断服务函数。
因为我们通过 WK_UP 中断( PA0 中断)来唤醒 CPU ,所以我们有必要设置一下该中断函
数,同时我们也通过该函数里面进入待机模式。关于外部中断服务函数以及中断服务回调函数
的使用方法请参考外部中断实验,这里我们就不做过多讲解。
通过以上几个步骤的设置,我们就可以使用 STM32F4 的待机模式了,并且可以通过 KEY_UP
来唤醒 CPU ,我们最终要实现这样一个功能:通过长按(
3 秒) KEY_UP 按键开机,并且通过
DS0 的闪烁指示程序已经开始运行,再次长按该键,则进入待机模式, DS0 关闭,程序停止运
行。类似于手机的开关机。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值