STM32睡眠模式

文章目录

  • 前言
  • PWR介绍
  • 电源框图
  • 上电复位和掉电复位
  • 可编程电压检测器
  • 低功耗模式
    • 模式选择
    • 电源控制寄存器
  • 睡眠模式
  • 停止模式
  • 待机模式


前言

在单片机产品中,例如遥控这类产品,长时间处于待机状态下,所以对于这类产品在待机时就应该尽可能的减少不必要的程序运行来节省电量,而睡眠模式就可以很好的解决这类问题


PWR介绍

  • PWR(Power Control)电源控制
  • PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能
  • 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务
  • 低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间

电源框图

在这里插入图片描述

上电复位和掉电复位

在这里插入图片描述
阈值参考数据手册
在这里插入图片描述

可编程电压检测器

在这里插入图片描述
PVD阈值(手动配置)参考数据手册
在这里插入图片描述

低功耗模式

由上到下睡眠程度越来越深
在这里插入图片描述

  • WFI:wait for interrupt,等待中断,即中断唤醒
  • WFE:wait for event,等待事件,即事件唤醒
  • PDDS:掉电深睡眠,0:停机模式;1:待机模式
  • LPDS:深睡眠下的低功耗,0:电压调节器开;1:电压调节器低功耗

模式选择

执行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32进入低功耗模式
在这里插入图片描述

电源控制寄存器

在这里插入图片描述
在这里插入图片描述

睡眠模式

  • 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
  • SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠
  • 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态
  • WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒
  • WFE指令进入睡眠模式,可被唤醒事件唤醒

停止模式

  • 执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
  • 1.8V供电区域的所有时钟都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器内容被保留下来
  • 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态
  • 当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟
  • 当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时
  • WFI指令进入停止模式,可被任意一个EXTI中断唤醒
  • WFE指令进入停止模式,可被任意一个EXTI事件唤醒

待机模式

  • 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行
  • 整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电
  • 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)
  • WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式

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

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

相关文章

【环境安装】nodejs 国内源下载与安装以及 npm 国内源配置

前言 Node.js 是一个基于 Chrome V8 引擎构建的 JavaScript 运行时环境,它能够使 JavaScript 在服务器端运行。它拥有强大的包管理器 npm,使开发者能够轻松管理和共享 JavaScript 代码包。 在中国,由于众所周知的原因,我们可能会…

JavaScript基础(七)

isNaN //用来判断一个变量是不是一个非数字 不是来判断是不是number类型&#xff0c;而是判断当前值能不能转为number类型&#xff0c;OK&#xff1f;懂了。 还有同学不明白&#xff0c;来看实例: <script> //isNaN(非数字)→true &#xff08;数字&#xff09;→fal…

Qt qt5.3集成mqtt模块

参考 【Qt官方MQTT库的使用&#xff0c;附一个MqttClient例子】 - 叶小鹏 - 博客园 (cnblogs.com)MQTT&#xff1a;windows最简单搭建mqtt服务端及本地客户端测试_emqx-windows-4.3.6-CSDN博客MQTTX 下载 编译 我从Github下载的是Release v5.12.5 qt/qtmqtt (github.com)版…

单链表题-ysf-反转-中间节点-回文-合并-分割

环形链表的约瑟夫问题_牛客题霸_牛客网 经典的约瑟夫环 #include <stdint.h> #include <stdlib.h> //创建链表 typedef struct ListNode ListNode;ListNode* buyNode(int x){ListNode* newNode(ListNode*)malloc(sizeof(ListNode));if(newNodeNULL){exit(1);}newN…

C++ C# 贝塞尔曲线

二阶贝塞尔曲线公式 三阶贝塞尔曲线公式 C 三维坐标点 二阶到N阶源码 //二阶公式&#xff1a; FVector BezierUtils::CalculateBezierPoint(float t, FVector startPoint, FVector controlPoint, FVector endPoint) {float t1 (1 - t) * (1 - t);float t2 2 * t * (1 - t);…

关于JVM内存模型和堆内存模型的理解

文章目录 前言一、JVM 内存模型的理解1.第一部分&#xff1a;线程共享区&#xff08;堆和方法区&#xff09;2.第二部分&#xff1a;线程独占区&#xff08;程序计数器、虚拟机栈和本地方法栈&#xff09;3.JVM的几个知识点3.1 垃圾回收就指线程共享区&#xff08;堆和方法区&a…

python数据分析——数据可视化(图形绘制基础)

数据可视化&#xff08;图形绘制基础&#xff09; 前言一、图形绘制基础Matplotlib简介使用过程sin函数示例 二、常用图形绘制折线图的绘制plot示例 散点图的绘制plot示例 柱状图的绘制bar示例 箱型图绘制plot.box示例 饼状图的绘制pie示例 三、图形绘制的组合情况多个折线图的…

MacOS docker 安装与配置

orbstack 安装 官网&#xff1a; https://orbstack.dev 下载链接&#xff1a;Download OrbStack Fast, light, simple Docker Desktop alternative 选择是Apple M系列处理器&#xff0c; 或 Intel系列处理器 到这里就安装好了Orbstack软件&#xff0c;下面开始配置docker 下…

Mybatis:in中应使用${}而不是#{}

示例1: in中应使用${}而不是#{} String deviceStatus"1,2,5,7";in中使用#{} SELECT * FROM TABLE_NAME WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(status, ,, 3), ,, -1) in (#{deviceStatus})查询不到数据 in中使用${} SELECT * FROM TABLE_NAME WHERE SUBSTRIN…

Python-VBA函数之旅-vars函数

目录 一、vars函数的常见应用场景 二、vars函数使用注意事项 三、如何用好vars函数&#xff1f; 1、vars函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://myelsa1024.blog.csdn.net/ 一、vars函数…

MySQL旧表做分区流程

1. 为什么做分区 数据库分区是将数据库中的数据划分成独立的部分&#xff0c;每个部分称为一个分区。分区可以根据特定的标准&#xff0c;如范围、列表或哈希值&#xff0c;将数据分隔到不同的物理存储位置中。数据库表分区可以在多种情况下提供显著的好处。以下是一些应该考虑…

查询中Split函数不管用?试试这个自定义函数!

hi&#xff0c;大家好&#xff01; 我们在实际的应用中会有这样的一些情况&#xff0c;获取的一些数据是由一些特殊字符连接起来的&#xff0c;比如&#xff1a;XXX汽车\SUV\EV\纯电。类似这样的数据&#xff0c;我们在应用过程中&#xff0c;需要将数据拆开&#xff0c;如果用…

是德keysight N1911A与N1913A单通道功率计

Agilent N1911A和N1912A P系列单通道和双通道功率计以及N192XA传感器可提供宽带宽和高性能测量&#xff0c;这是确保用户的产品符合其功率规范所需要的。 P系列功率计具有30MHz视频带宽和每秒100M/s 的持续采样率&#xff0c;可进行快速、准确、可重复的功率测量。当这些功…

Visual Studio环境搭载

环境搭建步骤&#xff1a; 下载软件 安装软件 运行软件 1 下载软件 在百度搜索 visual studio&#xff0c;选择 如下图中的选项 进入Visual Studio 官网后&#xff0c;选择 下载Windows版&#xff0c;并选择Community 2017 社区版本进行下载保存软件到电脑中 2 安装软件 双击…

找表是否存在mysql保留字段

SELECT column_name FROM information_schema.columns WHERE table_name 表名称AND column_name IN(action, add, aggregate, all, alter, after, and, as, asc, avg, avg_row_length,auto_increment, between, bigint, bit, binary, blob, bool, both, by, cascade, case, ch…

小米消金借势互联网消费场景,提升服务品质与效率

随着数字化时代的迅猛发展&#xff0c;消费领域正经历着巨大的变革。重庆小米消费金融有限公司&#xff08;简称“小米消金”&#xff09;&#xff0c;作为一家科创型持牌消费服务机构&#xff0c;紧跟这一浪潮&#xff0c;持续增强数字化服务能力&#xff0c;优化服务模式和用…

Focus Stacking Algorithm

Focus Stacking 对焦堆叠&#xff08;Focus Stacking&#xff09;过程中涉及的关键算法主要用于图像对齐、图像融合和图像锐化。以下是一些相关的算法和技术&#xff1a; 1. 图像对齐算法 在对焦堆叠过程中&#xff0c;图像对齐是确保每张照片的内容精确叠加的重要步骤。常用…

Delphi 高效处理大数据量的字典数据的查询问题

一、需求 系统中存在基本字典数据&#xff0c;且数据量大&#xff0c;需要根据各种条件查询某个字典数据&#xff0c;该如何高效实现&#xff1f; 例如&#xff1a;系统中的菜品字典数据&#xff0c;需要根据菜品ID、菜品编码、菜品名菜品规格等条件查找菜品 二、思路 1、使…

uview-plus在uniapp项目中单选和复选框不显示问题

在我的uniapp小程序项目中&#xff0c;我使用了vue3ts的组合&#xff0c;ui组件库使用了uview-plus这个组件库&#xff0c;但是在使用个别组件的时候&#xff0c;没有显示出效果&#xff0c;就像单选或者复选框&#xff0c;官方效果&#xff1a; 但是当我用到自己项目中的时候&…

[晕事]今天做了件晕事33 c++ mangle 函数名

作为一名c的程序员&#xff0c;开始使用c的时候&#xff0c;如果工程里同时有c和c&#xff0c;而且函数相互调用。 这个时候&#xff0c;需要注意&#xff0c; https://mzhan017.blog.csdn.net/article/details/121950739。 这个最好是在提示的时候&#xff0c;直接按照mangle…