STM32标准库-待机模式
1.1 STM32待机模式简介
STM32单片机具有低功耗模式,包括睡眠、停止和待机三种。
运行状态下,HCLK为CPU提供时钟。HCLK由AHB预分频器分频后直接输出得到。
低功耗模式选择需考虑电源消耗、启动时间和唤醒源。
睡眠模式停CPU不停外设时钟;
停止模式停所有时钟;
待机模式关闭1.8V内核电源。留备份电路和待机电路供电。
- 睡眠模式
- 进入:WFI/WFE
- 唤醒:任一中断/事件
- 时钟:CPU时钟关,其他不受影响
- 电压调节器:开
- 停机模式
- 进入:PDDS+LPDS+SLEEPDEEP+WFI/WFE
- 唤醒:外部中断
- 时钟:1.8V区域时钟关,HSI/HSE振荡器关
- 电压调节器:无(关闭状态)
- 待机模式
- 进入:PDDS+SLEEPDEEP+WFI/WFE
- 唤醒:WKUP引脚、RTC警告、NRST复位、IWDG复位
- 时钟:1.8V区域时钟关,HSI/HSE振荡器关
- 电压调节器:关
低功耗模式下,电源控制寄存器PWR_CR可设置开/关
待机模式功耗最低,仅需约2uA电流;
停机模式次之,典型消耗约20uA;
睡眠模式功耗相对较高。
用户可根据需求选择适合的低功耗模式。
STM32待机模式是最低功耗模式,关闭电压调节器,1.8V供电区断电,PLL、HSI、HSE振荡器停止,SRAM和寄存器内容不保,仅备份寄存器和待机电路保持供电。
可通过外部复位、独立看门狗复位、WKUP引脚上升沿或RTC闹钟事件退出待机。
唤醒后,除PWR_CSR外所有寄存器复位,执行流程与复位后相同。
PWR_CSR指示由待机状态退出。
待机时,仅复位、TAMPER(特定配置下)及使能的WK_UP引脚有效,其余IO引脚高阻。
进入待机模式涉及到电源控制寄存器(PWR_CR)和电源控制/状态寄存器(PWR_CSR)。
可通过设置电源控制寄存器PWR_CR的PDDS位,使CPU进入深度睡眠时进待机模式。
同时可通过 CWUF位,清除之前的唤醒位。
1.2 待机模式配置
1)使能电源时钟:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
2)设置 WK_UP 引脚作为唤醒源:
PWR_WakeUpPinCmd(ENABLE);
3)进入待机模式:
设置 SLEEPDEEP 位。
设置 PDDS 位。
执行 WFI 指令。
void PWR_EnterSTANDBYMode(void) { // 设置 SLEEPDEEP 位(SCB->SCR 的第 2 位) SCB->SCR |= SCB_SCR_SLEEPDEEP; // 设置 PDDS 位(进入深度睡眠时进入待机模式) PWR->CR |= PWR_CR_PDDS; // 执行 WFI 指令进入待机模式 __WFI();
}
4)编写 WK_UP 中断函数:
实现开机与进入待机模式的逻辑。
长按 WK_UP 按键(PA0)开机,DS0 闪烁指示程序运行。
再次长按则进入待机模式,DS0 关闭。
void EXTI0_IRQHandler(void) { static uint32_t press_time = 0; static uint8_t is_running = 0; if (EXTI_GetITStatus(EXTI_Line0) != RESET) { // 检测按键按下时间 if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0) { press_time++; } else { if (press_time > 300) { // 假设 3 秒为长按 if (is_running) { // 进入待机模式 PWR_EnterSTANDBYMode(); } else { // 开机,DS0 闪烁指示程序运行 is_running = 1; while (1) { GPIO_ToggleBits(GPIOD, GPIO_Pin_0); for (volatile int i = 0; i < 1000000; i++); } } } press_time = 0; } EXTI_ClearITPendingBit(EXTI_Line0); }
}
相关文章:
STM32标准库-待机模式
1.1 STM32待机模式简介 STM32单片机具有低功耗模式,包括睡眠、停止和待机三种。 运行状态下,HCLK为CPU提供时钟。HCLK由AHB预分频器分频后直接输出得到。 低功耗模式选择需考虑电源消耗、启动时间和唤醒源。 睡眠模式停CPU不停外设时钟; 停止…...
【论文笔记】The Power of Scale for Parameter-Efficient Prompt Tuning
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: The Power of Scale for P…...
几个docker可用的镜像源
几个docker可用的镜像源 💐The Begin💐点点关注,收藏不迷路💐 sudo rm -rf /etc/docker/daemon.json sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://d…...
Spring学习笔记_27——@EnableLoadTimeWeaving
EnableLoadTimeWeaving 1. 介绍 在Spring框架中,EnableLoadTimeWeaving 是一个注解,它用于启用加载时织入(Load-Time Weaving, LTW) LWT[Spring学习笔记_26——LWT-CSDN博客] 2. 场景 AOP:在Spring框架中…...
【数据分析】如何构建指标体系?
有哪些指标体系搭建模型?五个步骤教你从0开始搭建指标体系 一、企业指标体系搭建存在什么问题 许多企业在搭建数据指标体系时遇到了诸多难题,如问题定位不准确、数据采集不完整、目标不一致、报表无序、指标覆盖不全面以及报表价值未充分利用等。 1、…...
大数据程序猿不可不看的资料大全
随着大数据技术的发展,大数据程序猿在数据采集、处理、分析、存储等方面的技能需求不断增加。要在这个领域保持竞争力,系统性地学习和掌握大数据工具、技术架构和行业趋势是非常重要的。以下为您提供一份围绕大数据程序猿不可不看的资料大全…...
【架构设计常见技术】
EJB EJB是服务器端的组件模型,使开发者能够构建可扩展、分布式的业务逻辑组件。这些组件运行在EJB容器中,EJB将各功能模块封装成独立的组件,能够被不同的客户端应用程序调用,简化开发过程,支持分布式应用开发。 IOC …...
LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略
LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略 目录 MemFree的简介 1、MemFree的价值 2、MemFree 配备了强大的功能,可满足各种搜索和生产力需求 3、MemFree AI UI生成器功能 MemFree 安装和使用方法 1. 前端安装 2. 向量服务…...
Hive简介 | 体系结构
Hive简介 Hive 是一个框架,可以通过编写sql的方式,自动的编译为MR任务的一个工具。 在这个世界上,会写SQL的人远远大于会写java代码的人,所以假如可以将MR通过sql实现,这个将是一个巨大的市场,FaceBook就这…...
[C++] GDB的调试和自动化检测
文章目录 GDB基本使用1. bazel的debug过程2. line-tables-only的使用 Reference GDB基本使用 参考文档: https://zhuanlan.zhihu.com/p/655719314 1. bazel的debug过程 需要带--copt-g --copt-ggdb选项进行编译 // bazel build --stripnever --copt-g --copt-ggd…...
车机版 Android Audio 框架笔记
车机版Android Audio 框架涉及的知识点很多,在工作中涉及的功能板块也及其繁杂,后面我会根据工作中的一些实际遇到的实例,逐步拆解 Android Audio的知识点,这里从网上整理了一些思维导图,可以做为未来的一个研究方向&a…...
【NLP自然语言处理】深入解析Encoder与Decoder模块:结构、作用与深度学习应用
目录 🍔 Encoder模块 1.1 Encoder模块的结构和作用 1.2 关于Encoder Block 1.3 多头自注意力层(self-attention) 🍔 Decoder模块及Add & Norm模块 3.1 Decoder模块介绍 3.2 Add & Norm模块 3.3 位置编码器Positional Encoding 3.4 Decod…...
【JAVA EE】多线程、锁、线程池的使用
目录 创建线程 方法一:继承Thread类来创建一个线程类 方法二:实现Runnable,重写run 线程等待 获取当前线程引用 休眠当前线程 线程的状态 synchronized synchronized的特性 1、互斥 2、刷新内存 死锁 死锁的四个必要条件 避免死…...
云计算:定义、类型及对企业的影响
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 云计算:定义、类型及对企业的影响 云计算:定义、类型及对企业的影响 云计算:定义、类型及对企…...
大数据面试题--kafka夺命连环问
1、kafka消息发送的流程? 在消息发送过程中涉及到两个线程:一个是 main 线程和一个 sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给双端队列,sender 线程不断从双端队列 RecordAccumulator 中拉取…...
【大模型】Spring AI Alibaba 对接百炼平台大模型使用详解
目录 一、前言 二、Spring AI概述 2.1 spring ai是什么 2.2 Spring AI 核心能力 2.3 Spring AI 应用场景 三、Spring AI Alibaba 介绍 3.1 Spring AI Alibaba 是什么 3.2 Spring AI Alibaba 核心特点 3.3 Spring AI Alibaba 应用场景 四、SpringBoot 对接Spring AI Al…...
Zabbix如何配置将信息发送到邮件
申请邮箱,下面以QQ邮箱为例 1.1登录邮箱后,点击设置->账号 1.2开启服务 1.3点击生成授权码(这里生成的授权码记得保存,后面要用到) 创建报警媒介类型 2.1点击管理/媒介/Email 2.2编辑 Email,这里配置的…...
jmeter常用配置元件介绍总结之前置处理器、测试片段
系列文章目录 安装jmeter jmeter常用配置元件介绍总结之前置处理器、测试片段 6.前置处理器6.1用户参数6.2取样器超时6.3.测试片段6.4JSR223 PreProcessor6.5.JDBC PreProcessor 6.前置处理器 在取样器请求之前执行的操作,优先级比取样器高,用来处理一些…...
Redis2:Redis数据结构介绍、通用命令、String类型、Key的层级格式
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...
jenkins流水线pipeline
创建项目 1. 新建item 并选择pipeline 1.1 和普通项目配置的区别 普通项目配置目录: pipeline项目目录: pipeline的两种语法 声明式语法 2. 配置 2.1 流水线配置 2.2 选择声明式 声明式需要添加一个名为Jenkinsfile的文件实现流水线 Jenkinsfile的…...
Multisim仿真实战:石英晶体振荡器电路设计与性能调优
1. 石英晶体振荡器基础与Multisim入门 石英晶体振荡器是电子电路中常见的精密频率源,它的核心是一块经过特殊切割的石英晶体。当给晶体施加电压时,它会产生机械振动,这种振动又反过来产生电信号,形成稳定的振荡。我在实际项目中经…...
Python开发者三步完成Taotoken OpenAI兼容接口的接入与调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Python开发者三步完成Taotoken OpenAI兼容接口的接入与调用 对于习惯使用OpenAI官方Python SDK的开发者来说,接入Taoto…...
全球BGA锡球市场高速成长:2025年2.55亿美元筑基,2032年剑指4.43亿,8.3%CAGR锚定长期高增长逻辑
BGA锡球(BGA Solder Ball) 是用于替代IC元件封装结构中引脚的核心连接件,满足电性互连及机械连接的双重要求。简而言之,它是BGA封装工艺中不可或缺的焊接材料。QYResearch调研显示,2025年全球BGA锡球市场规模大约为2.5…...
告别官网SDK的迷茫:手把手教你为MSP430f5529在CCS中搭建‘私人定制’开发环境
告别官网SDK的迷茫:手把手教你为MSP430f5529在CCS中搭建‘私人定制’开发环境 嵌入式开发者常陷入这样的困境:每次新建项目都要重复配置开发环境,不仅浪费时间,还容易因配置不一致导致各种奇怪的问题。对于MSP430f5529这样的经典型…...
告别网络限制:用BilibiliDown轻松下载B站视频与音频
告别网络限制:用BilibiliDown轻松下载B站视频与音频 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/…...
千川素材月烧3万外包费?用易元AI自建素材工厂,省70%成本跑量更猛
做千川投放的商家都深有体会:限制账户放量的从来不是预算,而是素材成本高、产能慢、优质有效素材稀缺。当下千川商家都陷入同一个困境:不做素材没法投放,大批量做素材又烧钱。一款产品要多卖点测试,投放计划需要持续补…...
用HFSS仿真一个简单的波导:不只是S参数,教你如何动态可视化电场分布(Animate功能详解)
HFSS波导仿真进阶:从S参数到电场动态可视化的深度解析 1. 理解波导仿真中的场可视化价值 在微波工程领域,仿真工具的价值不仅在于获取S参数这样的量化指标,更在于揭示电磁场在结构中的真实分布与动态行为。HFSS作为行业标准的全波电磁仿真软件…...
从开发者控制台直观感受Taotoken的用量监控与审计功能
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从开发者控制台直观感受Taotoken的用量监控与审计功能 对于依赖大模型API构建应用的开发者而言,清晰、及时地掌握资源消…...
STM32CubeMX配置避坑指南:搞定F103C8T6最小系统板的时钟与调试口
STM32CubeMX配置避坑指南:搞定F103C8T6最小系统板的时钟与调试口 当你第一次拿到STM32F103C8T6最小系统板时,CubeMX的图形化配置界面看起来是如此友好。但现实往往比理想骨感——代码下载后毫无反应、调试器连接失败、LED闪烁频率诡异。这些问题十有八九…...
LRCGET:一键批量下载离线音乐库同步歌词的智能解决方案
LRCGET:一键批量下载离线音乐库同步歌词的智能解决方案 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否曾为数千首本地音乐文件寻找同…...
