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

低功耗模式介绍

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://www.xdnf.cn/news/7052.html

相关文章:

  • Java配置文件处理工具全解析
  • 人工智能赋能产业升级:AI在智能制造、智慧城市等领域的应用实践
  • 何首乌基因组-文献精读131
  • 代码上传gitte仓库
  • 【C语言练习】048. 使用递归进行树的遍历
  • 【软考 8T(n / 2)+n^2的时间复杂度如何计算?】
  • C++(21):fstream的读取和写入
  • DeepSeek系列核心技术与贡献总结
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Data input/output
  • 互联网大厂Java面试:从基础到复杂场景的技术挑战
  • 二:操作系统之进程概念
  • Unity学习总结篇(1)关于各种坐标系
  • 信息学奥赛一本通1012:计算多项式的值
  • Spring-Beans的生命周期的介绍
  • python3.13版本降为3.12
  • 基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)
  • 生成树的保护机制
  • 【运营商查询】批量手机号码归属地和手机运营商高速查询分类,按省份城市,按运营商移动联通电信快速分类导出Excel表格,基于WPF的实现方案
  • 院校机试刷题第六天:1134矩阵翻转、1052学生成绩管理、1409对称矩阵
  • AI驱动的研发流程:定义高度专业和系统化的规划基准
  • 软件架构设计--期末复习
  • 5月18总结
  • 拓展运算符
  • 海盗王改60帧时有关树木抖动的问题
  • 数字电子技术基础(六十)——使用Digital软件绘制脉冲触发的触发器
  • 《Python星球日记》 第89天:LlamaIndex 与知识图谱
  • 中国与全球电子取证行业市场报告(公开信息版)
  • 生产模式下react项目报错minified react error #130的问题
  • 互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战
  • Java核心API实战:从字符串到多线程全解析