STM32
直播中

123

9年用户 790经验值
擅长:可编程逻辑
私信 关注
[问答]

如何对STM32L452RET6的低功耗模式进行调试呢

STM32支持哪几种低功耗模式呢?
如何对STM32L452RET6的低功耗模式进行调试呢?

回帖(1)

李长鹰

2021-11-22 14:34:01
  低功耗模式的调试
  型号:STM32L452RET6
  规格:64PIN
  STM32支持3种低功耗模式:
  1.第一种就是睡眠模式,这种模式,电压调节器开启,内核停止运行,外设保持运行状态。这种模式一般适用于等待外设的中断,或者是事件时降低系统的功耗。
  2.第二种就是停止模式。这种模式,电压调节器可选择性的开启,所有外设时钟,都被关闭,这种模式适用于等待只有外部中断时,降低系统的功耗。
  3.第三种就是待机模式,这种模式电压调节器关闭,整个1.8伏区断电。
  这里采用第二种模式。HAL库有专门的接口,一条指令便进入此模式:
  HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
  其中PWR_STOPENTRY_WFI:为唤醒方式,WFI为中断唤醒,WFE为事件唤醒。我这里选择中断唤醒,唤醒方式有两种;
  内部rtc时钟唤醒,停止模式实际是关闭外设所有时钟,内部的低速时钟依然还在运行,所以我选择内部低速时钟作为rtc时钟源,设置一个固定时间进行一次rtc中断,此中断即可唤醒系统,唤醒系统后需要将时钟切换到高速时钟,并且关闭rtc中断,直到再次进入休眠前重新开启时钟。
  外部中断唤醒,外部中断唤醒首先考虑的是用uart的rx中断进行唤醒,但是此时必须得将rx设置成普通IO口,并设置外部中断,因为低功耗模式关闭了外部时钟,此时rx中断已经被关闭了,所以需要设置为不同io的外部中断,当中断唤醒时,重新配置uart的rx接收数据,同时关闭外部中断,直到下次进入休眠时重新启用外部中断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分