当前位置: 首页 > news >正文

低功耗模式介绍

STM32的3种低功耗模式

STM32的这三种低功耗模式主要针对不同的功耗和性能需求,逐级降低功耗:

1、睡眠模式 (Sleep Mode)

特点:内核(CPU)停止运行,但系统时钟 (Systick) 和一些外设(如NVIC)仍然可以工作。这种模式非常适合短时间的休眠。

void lpwr_enter_sleep(void)
{HAL_SuspendTick();    //暂停滴答定时器HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);}

2、停止模式 (Stop Mode)

特点:系统时钟停止,1.8V内核电源继续工作,PLL(锁相环,关闭后,系统失去倍频效果)、HIS(高速内部振荡器,内部时钟源,不再为CPU和外设提供高速时钟)和HSE RC(高速外部振荡器,用于系统时钟的基准源,失去高精度的时钟源)振荡器关闭,寄存器和SRAM数据保留。只有低速时钟 (LSI或LSE) 可以工作,允许使用低功耗的外部中断来唤醒。

void lpwr_enter_stop(void)        
{//暂停滴答定时器HAL_SuspendTick();//点亮LED2,代表进入停机模式led2_on();//进入到停机模式HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);//熄灭LED2,代表退出停机模式led2_off();//当退出停机模式后,时钟也发生了变化,会从72M变为8M(HSI)  故需要重新配置系统时钟stm32_clock_init(RCC_PLL_MUL9);}

3、 待机模式 (Standby Mode)

特点:内核电源关闭,所有寄存器和SRAM内容丢失,仅保留备份寄存器和待机电路供电。种模式能够实现最低功耗,适用于极限低功耗场景。

不同模式进入的标志如下

不同模式的唤醒方式

void lpwr_enter_standby(void)     //待机模式
{//使能电源时钟(关闭电压调节器)__HAL_RCC_PWR_CLK_ENABLE();//使能WAKEUP引脚的唤醒状态HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);//清除唤醒标记,否则将持续保持唤醒状态__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//进入待机模式HAL_PWR_EnterSTANDBYMode();//测试  ,看代码会不会进行到下面led2_on();}

main.c 代码

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "uart1.h"
#include "lpwr.h"
#include "key.h"int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();uart1_init(115200);KEY_init();lpwr_init();printf("hello world!\r\n");uint8_t i=0;while(1){ if(KEY_scan() == 2){//lpwr_enter_sleep();//lpwr_enter_stop();lpwr_enter_standby();}if(i%20 == 0)led1_toggle();i++;delay_ms(10);}
}


文章转载自:

http://ATdEJPkr.qczpf.cn
http://T8KyDHK0.qczpf.cn
http://iEMmI4Rs.qczpf.cn
http://HTC968y2.qczpf.cn
http://r801Zm0Z.qczpf.cn
http://DXO2uUoj.qczpf.cn
http://lUwZzwke.qczpf.cn
http://LlYf9nWW.qczpf.cn
http://l5TV2CiQ.qczpf.cn
http://H9UTaVz8.qczpf.cn
http://JY2Ri0lI.qczpf.cn
http://3O7KAKbQ.qczpf.cn
http://YS6pRFzR.qczpf.cn
http://G4p6hKG8.qczpf.cn
http://Bb25Tn3y.qczpf.cn
http://kqVDUJtN.qczpf.cn
http://AMSKqzXc.qczpf.cn
http://8nmvwHt1.qczpf.cn
http://2hyr0d0v.qczpf.cn
http://43rR9Cc3.qczpf.cn
http://6t70dW8e.qczpf.cn
http://z1bBgmxz.qczpf.cn
http://VPg258Zh.qczpf.cn
http://LoMNkgRU.qczpf.cn
http://JMiytV21.qczpf.cn
http://FAOWmepz.qczpf.cn
http://sh9X9Bdz.qczpf.cn
http://2OdHUHVp.qczpf.cn
http://eskjo1hE.qczpf.cn
http://9o47XRCl.qczpf.cn
http://www.dtcms.com/a/198779.html

相关文章:

  • Kotlin协程异常处理全解析
  • 渗透测试核心技术:信息收集与扫描
  • 计算机系统的工作原理
  • 学习wps的书写格式(题目黑体,加粗,三号)
  • Python列表全面解析:从入门到精通
  • defer关键字:延迟调用机制-《Go语言实战指南》
  • 【android bluetooth 协议分析 01】【HCI 层介绍 4】【LeSetEventMask命令介绍】
  • C++实现伽罗华域生成及四则运算(二)
  • UI架构的历史与基础入门
  • 楼宇【复习】
  • python打卡day29@浙大疏锦行
  • AGI大模型(23):LangChain框架快速入门之LangChain介绍
  • unity开发游戏实现角色筛选预览
  • 2025年PMP 学习十九 第12章 项目采购管理
  • 数据结构:二叉树一文详解
  • CSS-in-JS:现代前端样式管理的革新
  • 【MySQL】(12) 事务
  • 功分器简介
  • GORM 知识点入门
  • 机器学习09-正规方程
  • MetaMask安装及使用-使用水龙头获取测试币的坑?
  • 计算机网络 - 2.基础协议
  • 什么是 Boosting
  • 2025 ISCC 练武赛Pwn-wp(含附件)
  • KAG:通过知识增强生成提升专业领域的大型语言模型(五)
  • ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践
  • 【Canvas与诗词】醉里挑灯看剑 梦回吹角连营
  • TYUT-企业级开发教程-第三章
  • Qt Widgets模块功能详细说明,基本控件:QPushButton(二)
  • 数据脱敏-6种方案,你选哪种?