STM32 低功耗-待机模式

STM32 待机模式


文章目录

  • STM32 待机模式
  • 第1章 低功耗模式简介
  • 第2章 待机模式简介
    • 2.1 进入待机模式
    • 2.1 退出待机模式
  • 第3章 待机模式代码部分
  • 总结


第1章 低功耗模式简介

在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止和待机模式

在系统或电源复位以后,微控制器处于运行状态,当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗。这些低功耗模式电源消耗不同、唤醒时间不同和唤醒源不同。
例如等待某个外部事件时,用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,所以需要根据自身的需要选定一个最佳的低功耗模式。

STM32F1有三种低功耗模式:
1、睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行)。
2、停止模式(所有的时钟都已停止)。
3、待机模式(1.8V电源关闭)。

各种低功耗模式的对比如下表:

在这里插入图片描述

说明:
WFI和WFE都是系统指令,WFI是表示中断,WFE表示事件。

第2章 待机模式简介

待机模式下的输入/输出端口状态:
在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚:
1、复位引脚(始终有效)。
2、当被设置为防侵入或校准输出时的TAMPER引脚。
3、被使能的唤醒引脚。

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

2.1 进入待机模式

可以通过设置独立的控制位,选择以下待机模式的功能:
1、 独立看门狗(IWDG):可通过写入看门狗的键寄存器或硬件选择来启动IWDG。一旦启动了独立看门狗,除了系统复位,它不能再被停止。
2、 实时时钟(RTC):通过备用区域控制寄存器(RCC_BDCR)的RTCEN位来设置。
3、 内部RC振荡器(LSI RC):通过控制/状态寄存器(RCC_CSR)的LSION位来设置。
4、 外部32.768kHz振荡器(LSE):通过备用区域控制寄存器(RCC_BDCR)的LSEON位设置。

2.1 退出待机模式

当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事件的上升沿发生时,微控制器从待机模式退出。

从待机唤醒后,除了电源控制/状态寄存器(PWR_CSR),所有寄存器被复位。
从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。

如何进入和退出待机模式,细节参考如下表:
在这里插入图片描述

第3章 待机模式代码部分

示例代码如下:

void EXTI0_IRQHandler(void)
{delay_ms(20);                      /* 延时消抖 */if(EXTI_GetFlagStatus(EXTI_Line0) == SET){printf("进入待机模式\r\n"); if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 1)//PA0引脚触发高电平{RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);PWR_WakeUpPinCmd(ENABLE);//使能WKUP引脚的唤醒功能PWR_EnterSTANDBYMode();//进入待机模式}}EXTI_ClearITPendingBit(EXTI_Line0);/* 清除LINE0上的中断标志位 */
}

中断引脚唤醒代码部分(略)
和前面退出睡眠模式的代码一样,可以移步到睡眠模式文章参考即可。


总结

1、待机模式可实现系统的最低功耗,在睡眠模式和停止模式基础上更加节省能耗。

2、在调试模式默认情况下,如果在进行调试微处理器时,使微处理器进入停止或待机模式,将失去调试连接。所以需要退出这些低功耗模式后才可以进行程序调试和下载,否则是无法进行连接的。

3、可以利用待机模式达到最低功耗这一特性来实现降低一些产品的功耗,按键按下唤醒工作,再按下时就进入待机,避免不使用系统时的能量损耗,类似于现在的手机开关机等。

特别提醒:
以上的几篇文章都没有做寄存器的介绍,若需要了解,可以到芯片(中文)参考手册进行查阅学习。

睡眠模式文章

停止模式文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Cloud 六】Hystrix熔断

这里写目录标题 系列文章目录背景一、Hystrix是什么服务雪崩服务容错的相关概念熔断器降级超时控制限流 二、会什么要有Hystrix三、如何使用Hystrix进行熔断处理整体项目代码服务提供者pom文件yml配置文件启动类controller 服务消费者pom文件yml配置文件启动类feignhystrixcont…

信息安全技术工业控制系统安全控制应用指南学习笔记

工业控制系统安全控制基线 根据工业控制系统在国家安全、经济建设、社会生活中的重要程度,遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等,结合信息安全等级保护标准划分及实施效果分析,结合工业…

前端主题切换方案——CSS变量

前言 主题切换是前端开发中老生常谈的问题,本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时,为了避免代码冗余,降低维护成本,一些CSS预编译工具(Sass/Less/Stylus)等都支…

JVM面试题

JVM理论 #JVM内存模型# Java内存模型(JMM)? Java的内存模型决定了线程间的通信方式,JMM的模型是由主存和工作内存构成,两个线程想要正常通信需要将工作内存中的变量刷到主存中,另一个线程才能正确读取得…

【数据结构】移除链表元素-图文解析(单链表OJ题)

LeetCode链接:203. 移除链表元素 - 力扣(LeetCode) 本文导航 💭做题思路 🎨画图更好理解: ✍️代码实现 🗂️分情况讨论: ❄️极端情况: 💭做题思路 遍历链表…

Git报错合集

本文记录了笔者在使用 github 过程中遇到的问题,仅供个人使用。 目录 Could not resolve hostlocal changes to the following files would be overwritten by mergeTLS connection was non-properly terminatedUpdates were rejected because the remote contains …

普及100Hz高刷+1ms响应 微星发布27寸显示器:仅售799元

不论办公还是游戏,高刷及低响应时间都很重要,微星现在推出了一款27寸显示器PRO MP273A, 售价只有799元,但支持100Hz高刷、1ms响应时间,还有FreeSync技术减少撕裂。 PRO MP273A的100Hz高刷新率是其最大的卖点之一&#…

scala连接mysql数据库

scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。 加载依赖 其中包含 JDBC driver <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29&l…

eclipse Java Code_Style Code_Templates

Preferences - Java - Code Style - Code Templates Eclipse [Java_Code_Style_Code_Templates_ZengWenFeng] 2023.08.07.xml 创建一个新的工程&#xff0c;不然有时候不生效&#xff0c;旧项目可能要重新导入eclipse 创建一个测试类试一试 所有的设置都生效了

Java8实战-总结11

Java8实战-总结11 Lambda表达式方法引用管中窥豹如何构建方法引用 构造函数引用 Lambda表达式 方法引用 方法引用让你可以重复使用现有的方法定义&#xff0c;并像Lambda一样传递它们。在一些情况下&#xff0c;比起使用Lambda表达式&#xff0c;它们似乎更易读&#xff0c;感…

算法竞赛入门【码蹄集新手村600题】(MT1120-1140)C语言

算法竞赛入门【码蹄集新手村600题】(MT1120-1140&#xff09;C语言 目录MT1121 小码哥考完咯MT1122阶梯IF-ELSEMT1123 元音MT1124 罗马数字MT1125 几月份MT1126 十二生肖MT1127 小码哥的属相MT1128 骰子的反面MT1129 小码哥玩骰子MT1130 骰子里面的数学MT1131 字符判断MT1132 人…

SciencePub学术 | 算法类重点SCIEEI征稿中

SciencePub学术 (www.sciencepub.cn) 刊源推荐: 算法类重点SCIE&EI征稿中&#xff01;2区闭源好刊&#xff0c;对国人非常友好。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 算法类重点SCIE&EI 【期刊简介】IF&#xff1a;6.0-6.5&#xff0…

Acwing.876 快速幂求逆元

题目 给定n组ai ,pi&#xff0c;其中p;是质数,求α;模p;的乘法逆元&#xff0c;若逆元不存在则输出impossible。 输入格式 第一行包含整数n。 接下来n行&#xff0c;每行包含一个数组ai, pi&#xff0c;数据保证p;是质数。 输出格式 输出共n行&#xff0c;每组数据输出一…

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口

钉钉对接打通金蝶云星空获取流程实例列表详情&#xff08;宜搭&#xff09;接口与其他应收单接口 对接系统钉钉 钉钉&#xff08;DingTalk&#xff09;是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台&#xff0c;提供PC版&#xff0c;Web版和手机版&#xff0c;有考…

pytorch学习——卷积神经网络——以LeNet为例

目录 一.什么是卷积&#xff1f; 二.卷积神经网络的组成 三.卷积网络基本元素介绍 3.1卷积 3.2填充和步幅 3.2.1填充&#xff08;Padding&#xff09; 填充是指在输入数据周围添加额外的边界值&#xff08;通常是零&#xff09;&#xff0c;以扩展输入的尺寸。填充可以在卷…

Git工具安装

Git 工具安装 1. 下载Git安装包2. 安装Git工具3. 简单的使用配置用户名 1. 下载Git安装包 打开官网 https://git-scm.com/downloads点击下载 2. 安装Git工具 右击以管理员身份运行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a99a73d54824800bc87db64f71f7602.png…

避免安装这5种软件,手机广告频繁弹窗且性能下降

在我们使用手机的日常生活中&#xff0c;选择合适的应用软件对于保持良好的使用体验至关重要。然而&#xff0c;有些软件可能会给我们带来不必要的麻烦和困扰。特别是那些频繁弹窗广告、导致手机性能下降的应用程序&#xff0c;我们应该尽量避免安装它们。 首先第一种&#xf…

Python-面向对象:面向对象、成员方法 、类和对象、构造方法、魔术方法、封装、继承、类型注解、多态(抽象类(接口))

版本说明 当前版本号[20230806]。 版本修改说明20230806初版 目录 文章目录 版本说明目录知识总览图面向对象初识对象生活中数据的组织程序中数据的组织使用对象组织数据 成员方法类的定义和使用成员变量和成员方法成员方法的定义语法注意事项 类和对象现实世界的事物和类使…

快速开发平台 WebBuilder 9 发布

WebBuilder 是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;智能化的设计&#xff0c;能轻松完成常规桌面应用和面向手机等的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏览…

【Spring Cloud 四】Ribbon负载均衡

Ribbon负载均衡 系列文章目录背景一、什么是Ribbon二、为什么要有Ribbon三、使用Ribbon进行负载均衡服务提供者A代码pom文件yml配置文件启动类controller 服务提供者Bpom文件yml配置文件启动类controller 服务消费者pom文件yml文件启动类controller 运行测试 四、Ribbon的负载均…