STM32 - PWR 笔记
PWR(Power Control)电源控制
PWR 负责管理 STM32 内部的电源供电部分,可以实现 可编程电压监测器 和 低功耗模式 的功能
- 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务
- 低功耗模式包括 睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间
电压调节器
- 运转模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设)。
- 停止模式:调节器以低功耗模式提供1.8V电源,以保存寄存器和SRAM的内容。
- 待机模式:调节器停止供电。除了备用电路和备份域外,寄存器和SRAM的内容全部丢失。
电源框图
细分三个部分,VDDA供电区域 是负责模拟电路 供电,VDD供电区域 是负责 数字电路 供电。 后备供电区域是备用电源。
可编程电压监测器(PVD)
上电复位(POR)和掉电复位(PDR)
上电复位和掉电复位的波形图
设置PVDE位来使能PVD
PVD的门限
低功耗模式
- 睡眠模式:Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行
- 停止模式:所有的时钟都已停止
- 待机模式:1.8V电源关闭
在运行模式下,可以通过以下方式中的一种降低功耗:
- 降低系统时钟
- 关闭APB和AHB总线上未被使用的外设时钟。
执行WFI(Wait For Interrupt)或者WFE(Wait For Event)指令后,STM32进入低功耗模式
实际建议能用WFI就使用WFI进入睡眠,WFE进入睡眠,解除有些麻烦
- 在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能,并且在Cortex-M3系统控制寄存器中使能SEVONPEND位。当MCU从WFE中唤醒后,外设的中断挂起位和外设的NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。
- 配置一个外部或内部的EXIT线为事件模式。当MCU从WFE中唤醒后,因为与事件线对应的挂起位未被设置,不必清除外设的中断挂起位或外设的NVIC中断通道挂起位
开启代码
修改主频
把此文件只读变为可写(在该文件的属性中修改),然后想改哪个主频就解除哪个!!!
睡眠模式
- 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
- SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠
- 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态
- WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒
- WFE指令进入睡眠模式,可被唤醒事件唤醒
__WFI(); //执行WFI指令,CPU睡眠,并等待中断唤醒__WFE(); //执行WFE指令,CPU睡眠,并等待事件唤醒
停止模式
- 执行完WFI/WFE指令后,STM32进入停止模式,程序暂停运行,唤醒后程序从暂停的地方继续运行
- 1.8V供电区域的所有时钟都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器内容被保留下来
- 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态 当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟
- 当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时
- WFI指令进入停止模式,可被任意一个EXTI中断唤醒
- WFE指令进入停止模式,可被任意一个EXTI事件唤醒
/*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //开启PWR的时钟//停止模式和待机模式一定要记得开启PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);//STM32进入停止模式,并等待中断唤醒SystemInit(); //唤醒后,要重新配置时钟
待机模式
- 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行
- 整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电
- 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)
- WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式
/*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //开启PWR的时钟//停止模式和待机模式一定要记得开启/*使能WKUP引脚*/PWR_WakeUpPinCmd(ENABLE); //使能位于PA0的WKUP引脚,WKUP引脚上升沿唤醒待机模式/*设定闹钟*/uint32_t Alarm = RTC_GetCounter() + 10; //闹钟为唤醒后当前时间的后10sRTC_SetAlarm(Alarm); //写入闹钟值到RTC的ALR寄存器OLED_ShowNum(2, 6, Alarm, 10); //显示闹钟值/*开启停止*/PWR_EnterSTANDBYMode(); //STM32进入停止模式,并等待指定的唤醒事件(WKUP上升沿或RTC闹钟)/*待机模式唤醒后,程序会重头开始运行*/
相关文章:

STM32 - PWR 笔记
PWR(Power Control)电源控制 PWR 负责管理 STM32 内部的电源供电部分,可以实现 可编程电压监测器 和 低功耗模式 的功能 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD…...

标准盒模型和怪异盒子模型的区别
在 CSS 中,标准盒模型和怪异盒模型是两种不同的盒子模型计算方式,主要区别如下: 一、标准盒模型(content-box) 1. 定义与组成 - 标准盒模型是 CSS 中默认的盒模型。 - 它由内容区域(content)、…...

推荐算法——MRR
定义: MRR计算的是第一个正确答案的排名的倒数,并对所有查询取平均值。它衡量了模型在排序结果中快速找到正确答案的能力。 其中: Q 是查询的总数。ranki 是第 i 个查询中第一个正确答案的排名(位置)。如果第一个正…...

idea中打开静态网页端口是63342而不是8080
问题: 安装了tomcat 并且也配置了环境,但是在tomcat下运行,总是在63342下面显示。这也就意味着,并没有运行到tomcat环境下。 找了好几个教程(中间还去学习了maven,因为跟的教程里面,没有maven,但…...

Vue3框架搭建3:配置说明-prettier配置
1、配置说明: .prettierrc.json{"$schema": "https://json.schemastore.org/prettierrc","semi": false,"tabWidth": 2,"singleQuote": true,"printWidth": 100,"trailingComma": "no…...

SQL MySQL定时器/事件调度器(Event Scheduler)
事件调度器(Event Scheduler)在MySQL数据库系统中是一个强大的功能组件,它允许用户定义一系列称为“事件”的数据库对象,这些事件在指定的时间或时间间隔自动执行预定义的SQL语句或操作。事件调度器通过维护一个时间计划表来管理这…...

从0到1构建渠道运营体系:实战案例与策略指南
引言 在当今竞争激烈的市场环境中,有效的渠道运营是企业实现产品或服务快速触达目标用户、提升市场份额的关键。从零开始构建一个高效的渠道运营体系,不仅需要深思熟虑的策略规划,还需要灵活应变的实战操作。本文将结合实战案例,…...

Java版Flink使用指南——将消息写入到RabbitMQ的队列中
大纲 新建工程新增依赖 编码自动产生数据写入RabbitMQ 测试工程代码 在 《Java版Flink使用指南——从RabbitMQ中队列中接入消息流》一文中,我们介绍了如何使用Java在Flink中读取RabbitMQ中的数据,并将其写入日志中。本文将通过代码产生一些数据…...

python excel openpyxl
python excel LTS 在开始之前,确保已经安装了 Python 和所需的库。 主要使用以下库: openpyxl:用于读取和写入 Excel 文件。 pandas:用于数据处理和分析。 xlwings:用于将 Python 与 Excel 连接,实现双向…...

C++八股(一)
目录 一、new和malloc ⭐ 二、class和struct的区别 ⭐ 三、char和int之间的转换 四、什么是野指针和悬挂指针 ⭐ 五、NULL和nullptr区别⭐ 六、指针常量和常量指针有何区别⭐ 七、物理内存和虚拟内存的区别⭐ 八、重载、重写和隐藏的区别⭐ 九、简述面向对象(OOP)的…...

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件
目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…...

STM32-I2C
本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…...

04.ffmpeg打印音视频媒体信息
目录 1、相关头文件 2、相关结构体 3、相关函数 4、函数详解 5、源码附上 1、相关头文件 #include <libavformat/avformat.h> 包含格式相关的函数和数据结构 #include <libavutil/avutil.h> 包含一些通用实用函数 2、相关结构体 AV…...

微信开发授权登录梳理总结
授权登录流程对比 微信公众号/网页 微信文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 流程图如下: 特殊说明: 步骤1拼接的微信地址是:https://open.weixin.qq…...

HTML5实现我的音乐网站源码
文章目录 作者:[xcLeigh](https://blog.csdn.net/weixin_43151418) 1.设计来源1.1 界面效果1.2 轮播图界面1.3 音乐播放界面1.4 视频播放界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作…...

UNI_App平台调试指南 debug(十五)
App平台调试指南 debug 常规开发里,在 HBuilderX 的运行菜单里运行 App,手机端的错误或 console.log 日志信息会直接打印到控制台。 如果需要更多功能,比如审查元素、打断点 debug,则需要启动调试模式。自 HBuilderX 2.0.3+ 版本起开始支持 App 端的调试。 #打开调试窗口…...

LLM之RAG实战(四十一)| 使用LLamaIndex和Gemini构建高级搜索引擎
Retriever 是 RAG(Retrieval Augmented Generation)管道中最重要的部分。在本文中,我们将使用 LlamaIndex 实现一个结合关键字和向量搜索检索器的自定义检索器,并且使用 Gemini大模型来进行多个文档聊天。 通过本文,我…...

【错题集-编程题】AOE还是单体?(贪心)
牛客对应链接:AOE还是单体? (nowcoder.com) 一、分析题目 如果使用一次 AOE 造成的伤害比消耗的蓝量多,那就使用。否则就一直使用单体伤害。 二、代码 //值得学习的代码 #include <iostream> #include <algorithm>using namespa…...

怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~
怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~ 文章目录 怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~0. 在开始清理之前1. 推荐执行的操作1.1 清理系统缓存文件1.2 磁盘清…...

react启用mobx @decorators装饰器语法
react如果没有经过配置,直接使用decorators装饰器语法会报错: Support for the experimental syntax ‘decorators’ isn’t currently enabled 因为react默认是不支持装饰器语法,需要做一些配置来启用装饰器语法。 step1: 在 tsconfig.js…...

计算机如何学习
1. 不要只盯着计算机语言学习,你现在已经学习了C语言和Java,暑假又规划学习Python,最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言,沿着这个方向继续往后学习知识就行。计算机语言是学不完的,而未…...

【Python 基础】函数 - 1
函数 从前面的章节中,你已经熟悉了 print()、input()和 len()函数。Python 提供了这样一些内建函数,但你也可以编写自己的函数。“函数”就像一个程序内的小程序。 为了更好地理解函数的工作原理,让我们来创建一个 函 数 。 在 文 件 编 辑器 中 输 入 下 面 的 程 序 , …...

从0到1开发一个Vue3的新手引导组件(附带遇到的问题以及解决方式)
1. 前言: 新手引导组件,顾名思义,就是强制性的要求第一次使用的用户跟随引导使用应用,可以让一些第一次使用系统的新手快速上手,正好我最近也遇到了这个需求,于是就想着开发一个通用组件拿出来使用(写完之后才发现element就有,后悔了哈哈哈😭😭) 示例图…...

概率统计(二)
二维离散型 联合分布律 样本总数为16是因为,两封信分别可以放在4个信箱 边缘分布律 条件分布律 独立性 选填才能用秒杀 联合概率乘积不等于边缘概率的乘积则不独立 二维连续型 区间用一重积分面积用二重积分 离散型随机变量 常见6个分布的期望和方差 离散型随机变…...

文件类:如何将excel文件转为csv文件(且保留时间格式)?
最近有个场景,在ftp服务器上,读取csv文件并入库,但是客户提供的一部分文件却是xls文件,就得搞个将excel转为csv文件的方法,话不多说直接开干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…...

FiddlerScript Rules修改-更改发包中的cookie
直接在fiddler script editor中增加如下处理代码即可 推荐文档oSession -- 参数说明 测试笔记 看云...

直升机停机坪的H代表什么
可为什么直升机的停机坪为什么要用“H”来表示呢? Helicopter 直升机停机坪的“H”来自直升机的英文Helicopter的首字母,也是停机坪的识别标志,表示可用于直升机的垂直起降,方便于直升机飞行员在空中能快速识别降落位置。 另外…...

hyperworks软件许可优化解决方案
Hyperworks软件介绍 Altair 仿真驱动设计改变了产品开发,使工程师能够减少设计迭代和原型测试。提升科学计算能力扩大了应用分析的机会,使大型设计研究能够在限定的项目时间完成。现在,人工智能在工程领域的应用再次改变了产品开发。基于物理…...

四川赤橙宏海商务信息咨询有限公司抖音电商服务靠谱吗?
在数字化浪潮席卷全球的今天,电商行业蓬勃发展,各种新兴电商平台层出不穷。其中,抖音电商以其独特的社交属性和庞大的用户基础,迅速崛起为行业新星。四川赤橙宏海商务信息咨询有限公司,作为专注于抖音电商服务的佼佼者…...

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥派生(C/C++)】
密钥派生(C/C) 以HKDF256密钥为例,完成密钥派生。具体的场景介绍及支持的算法规格,请参考[密钥生成支持的算法]。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 生成密钥 指定密钥别名。 初始化密钥属…...