| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 待机唤醒实验 -> 正文阅读 |
|
[嵌入式]待机唤醒实验 |
在系统或电源复位以后,微控制器处于 运行状态。运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码。当 CPU 不需继续运行 时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。 STM32的3种低功耗模式:
① 睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。
② 停止模式:所有时钟都已停止。1.8V内核电源工作。PLL,HIS和HSE RC振荡器功能禁止。寄存器和SRAM内容保留。
③待机模式:1.8V内核电源关闭。只有备份寄存器和待机电路维持供电。寄存器和SRAM内容全部丢失。实现最低功耗。
在运行模式下,可以通过下面方式降低功耗: ① 降低系统时钟。 ② 关闭APB和AHB总线上未被使用的外设时钟。 在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要 2.2uA 左右的 电流。停机模式是次低功耗的,其典型的电流消耗在 350uA 左右。最后就是睡眠模式了。根据最低电源消耗,最快启动时间和可用的唤醒源等条件,选择一种最佳的低功耗模式。 STM32F4的待机模式 待机模式可实现 STM32F4 的最低功耗。该模式是在CM4 深睡眠模式时关闭电压调节器。整个1.2V 供电区域被断电。PLL、 HSI 和 HSE 振荡器也被断电。SRAM 和寄存器内容丢失。除备份域(RTC 寄存器、RTC 备份 寄存器和备份 SRAM)和待机电路中的寄存器外,SRAM 和寄存器内容都将丢失。 从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚,读取复位向量等)。 电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。 进入待机模式涉及到 2 个寄存器,电源控制寄存器(PWR_CR)和电源控制/状态寄存器(PWR_CSR)。
PWR_CR电源控制寄存器
①设置PDDS位进入深度睡眠时进入待机模式。
②设置CWUF位,清除之前的WUF唤醒位。
PWR_CSR电源控制/状态寄存器
① 设置EWUP,使能WKUP 引脚用于待机唤醒。 ② WUF唤醒标志,用来判断是否发生唤醒事件。 对于使能了 RTC 闹钟中断或 RTC 周期性唤醒等中断的时候,进入待机模式前,必须按如 下操作处理: 1, 禁止 RTC 中断(ALRAIE、ALRBIE、WUTIE、TAMPIE 和 TSIE 等)。 2, 清零对应中断标志位。 3, 清除 PWR 唤醒(WUF)标志(通过设置 PWR_CR 的 CWUF 位实现)。 4, 重新使能 RTC 对应中断。 5, 进入低功耗模式。 在有用到 RTC 相关中断的时候,必须按以上步骤执行之后,才可以进入待机模式,否则可能无法唤醒。 固件库中低功耗操作函数 文件:stm32f4xx_pwr.c? / stm32f4xx_pwr.h
文件: core_cm4.h
待机唤醒配置步骤: ①使能电源时钟。因为要配置电源控制寄存器,所以必须先使能电源时钟。RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); ② RTC相关处理:关闭RTC相关中断。 ③设置WK_UP引脚作为唤醒源。设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。 PWR_WakeUpPinCmd(ENABLE);? //使能唤醒管脚功能 ④设置SLEEPDEEP位,设置PDDS位,执行WFI指令,进入待机模式。 void PWR_EnterSTANDBYMode(void); 配置以及主函数 通过串口在屏幕上打印时间,我们在13:50:00前通过KEY0按键来开启待机模式,通过闹钟在13:50:00唤醒。
运行视频 待机唤醒实验 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:27:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |