【STM32CubeMX】低功耗模式

这篇具有很好参考价值的文章主要介绍了【STM32CubeMX】低功耗模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  本文讲解STM32F10X的低功耗模式,部分资料参考自STM32手册。STM32F10X提供了三种低功耗模式:睡眠模式(Sleep mode)、停机模式(Stop mode)和待机模式(Standby mode)。这些低功耗模式可以有效减少系统功耗,延长电池寿命,对于需要长时间运行的电池供电设备尤为重要。

环境

  • STM32F103ZET6开发板(战舰V3),72MHz主频
  • 基于STM32CubeMX生成的HAL库代码
  • keil5中,进行代码的编写修改

内容

【STM32CubeMX】低功耗模式,STM32CubeMX,stm32,嵌入式硬件,单片机,电源设计

  因为我使用的是STM32CubeMX生成的HAL库代码,所以说PWR时钟的使能(__HAL_RCC_PWR_CLK_ENABLE();)已经在HAL_MspInit();里默认添加有了,如果是其它方式生成的代码,则可能需要手动添加。

  关于唤醒的验证,我在下述验证中,就配置了PA0为外部中断模式,下拉,上升沿触发,开启对应NVIC,来实验了中断唤醒是没问题的,就是通过一条杜邦线PA0连接3.3V,拔插来触发就行了。事件唤醒还没有实验探究。

睡眠模式

【STM32CubeMX】低功耗模式,STM32CubeMX,stm32,嵌入式硬件,单片机,电源设计

  睡眠模式,它使处理器暂停执行,并且可以通过外部事件或中断来唤醒。在睡眠模式下,(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行,以便在唤醒时快速恢复正常运行。

睡眠模式的进入:两种睡眠模式,SLEEP-NOW或 SLEEP-ON-EXIT。

  • SLEEP-NOW:如果SLEEPONEXIT位被清除,当WRI或WFE被执行时,微控制器立即进入睡眠模式。
  • SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。

睡眠模式的唤醒:两种唤醒方式,任一中断(WFI)或唤醒事件(WFE)。

  • WFI:任意一个中断的触发都能唤醒该模式。
  • WFE:唤醒事件
// SLEEP-NOW模式 WFI唤醒
// 滴答定时器的中断也会触发唤醒,所以说以WFI唤醒时,要先停止滴答的计数
HAL_SuspendTick();	//停止滴答定时器的计数
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
HAL_ResumeTick();	//启动滴答定时器的计数

// SLEEP-NOW模式 WFI唤醒
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFE);

//  SLEEP-ON-EXIT模式 WFI唤醒
HAL_PWR_EnableSleepOnExit();	//  按手册要求 SLEEPONEXIT = 1 
HAL_SuspendTick();				//停止滴答定时器的计数
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
HAL_ResumeTick();				//启动滴答定时器的计数

停机模式

【STM32CubeMX】低功耗模式,STM32CubeMX,stm32,嵌入式硬件,单片机,电源设计

  停止模式是在Cortex™-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压 调节器可运行在正常或低功耗模式。此时在1.8V供电区域的的所有时钟都被停止,PLL、HSI和 HSE RC振荡器的功能被禁止,SRAM和寄存器内容被保留下来。在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。当一个中断或唤醒事件导致退出停止模式时,会自动选用内部高速时钟(HSI RC振荡器)为系统时钟

  该模式有着两种唤醒模式,大致也跟上述的睡眠模式一样,就不过多介绍了。

// 停机模式 WFI唤醒
HAL_SuspendTick();	//停止滴答定时器的计数
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
HAL_ResumeTick();	//启动滴答定时器的计数
// 停机模式 WFE唤醒
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);

待机模式

【STM32CubeMX】低功耗模式,STM32CubeMX,stm32,嵌入式硬件,单片机,电源设计

  待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个 1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电

  在HAL中进入待机模式很简单,只需要一行代码,就能进入,当然在待机前,还有设置唤醒源。这里的程序是设置用于WKUP引脚(PA0)上的上升沿后,进行唤醒。

  待机模式唤醒,在通过唤醒源__唤醒后,代码执行等同于复位后的执行__,而不是从进入待机模式的程序继续执行的,这一点是需要注意的。待机模式下的输入/输出端口状态:在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚:1. 复位引脚(始终有效) 2. 当被设置为防侵入或校准输出时的TAMPER引脚 3. 被使能的唤醒引脚

//这里是先判断唤醒引脚PA0的状态
//因为上面说了,待机模式唤醒后等同于复位,所以说要检验待机模式的唤醒,不能直接把进入待机模式的程序直接放在程序中,否则一唤醒,又执行都进入待机模式的程序,这样就约等于死循环。
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == 0)
{
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);   //设置WKUP用于唤醒
	HAL_PWR_EnterSTANDBYMode();					// 进入待机模式  
}

总结

功耗:睡眠模式 > 停机模式 > 待机模式

唤醒速度:睡眠模式 > 停机模式 > 待机模式文章来源地址https://www.toymoban.com/news/detail-657236.html

到了这里,关于【STM32CubeMX】低功耗模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年03月17日
    浏览(73)
  • 嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

    一、STM32CubeMx实现数码管 1、双击打开STM32CubeMX。 2、点击File选项,在File列表下选择New Project选项新建工程。 3、在图中所示位置的方框中输入我们使用的芯片型号来搜索芯片 4、与我们的搜索相关的芯片型号会在这里呈现,我们只需要选择我们需要的即可,这里我们双击第一个

    2024年02月08日
    浏览(49)
  • 【Mac+CLion+STM32+ST-Link】Mac(apple sillicon)上使用STM32CubeMX和CLion搭建嵌入式开发环境

    Clion 官网安装或者brew安装,我用的是2023.2版本。 stlink server https://www.st.com/en/development-tools/st-link-server.html 不安装的话检测不到stlink。 STM32CubeMX https://www.st.com/en/development-tools/stm32cubeide.html#overviewsecondary=st-get-software 用来快速搭建一个工程。 Arm-toolchain 用来编译和debug的组件。

    2024年02月08日
    浏览(43)
  • 【嵌入式】STM32计时器编码器接口模式使用

    使用STM32调试电机或传感器时经常会使用到计数器的编码器接口模式,本文主要记录该模式的固件库配置方法,并给出使用该模式获取光栅测距值的实例。 硬件: STM32F103C8T6 光栅测距传感器 编码器接口模式为STM32计时器的一种特殊使用模式,该模式下可对编码器输出的脉冲信

    2024年02月20日
    浏览(46)
  • 嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月20日
    浏览(48)
  • 【STM32CubeMX】低功耗模式

      本文讲解STM32F10X的低功耗模式,部分资料参考自STM32手册。STM32F10X提供了三种低功耗模式:睡眠模式(Sleep mode)、停机模式(Stop mode)和待机模式(Standby mode)。这些低功耗模式可以有效减少系统功耗,延长电池寿命,对于需要长时间运行的电池供电设备尤为重要。 ST

    2024年02月12日
    浏览(85)
  • 【嵌入式学习笔记】嵌入式基础9——STM32启动过程

    程序段交叉引用关系(Section Cross References):描述各文件之间函数调用关系 删除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被删除的冗余程序段(函数/数据) 映像符号表(Image Symbol Table):描述各符号(程序段/数据)在存储器中的地址、类

    2024年02月15日
    浏览(81)
  • stm32嵌入式实验考核

    STM32 实验考核题目 1. 利用 STM32 小板实现:控制外接 LED 灯每隔 3 秒钟亮暗变换,同 时在 PC 机上显示 MCU 的计时时间,MCU 的初始时间由 PC 机 方设置。 2. 利用 STM32 小板实现:利用导线外接 GPIO 口模拟 2 个按键输入, 根据输入组合的四种情况,分别控制三色灯四种流水灯效果

    2024年02月03日
    浏览(48)
  • STM32串口通信详解(嵌入式学习)

    时钟信号在电子领域中是指用于同步和定时电路操作的周期性信号。它在数字系统和通信系统中起着至关重要的作用,用于协调各个组件之间的数据传输和操作。 时钟信号有以下几个重要的方面: 频率:时钟信号的频率是指单位时间内信号周期的数量。它通常以赫兹(Hz)为

    2024年02月09日
    浏览(67)
  • STM32的时钟系统(嵌入式学习)

    时钟是指用于计量和同步时间的装置或系统。时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,例如:串口数据的发送、AD转换、定时器计数等。因此时钟对于计算机系统是至关重要的,通常时钟系

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包