本文纯属个人笔记
STM32L4系列MCU进入低功耗前的配置需要注意如下几个方面:
(1) 连接外部中断源的引脚保持EXIT配置即可,无需额外配置
(2)连接外部设备进行数据交换的,如USART、SPI、I2C等,需要在进入休眠前更改配置为Analog,即模拟输入
(3)连接外部设备的其他引脚,则需要根据实际外设的情况置为输入、输出高或者输出低,设置时的原则为不产生压差从而不产生电流,如外设某休眠时引脚输出低,而MCU对应引脚输出高,则连接电阻则会有较大的电流
(4)所有没使用到的引脚(除debug的引脚以外)均配置为Analog,此步骤可在STM32cubemx的Project Manager中Code Generator选项卡下的HAL Settings栏内完成,如下图所示。
(5)引脚配置完成后,需要关闭GPIO的时钟,进一步降低功耗,如图所示
(6)最后直接调用HAL中已经给出的低功耗进入函数即可
(7)需要注意的是,STOP2模式可以被任意外部中断唤醒,而Shutdown和Standby只能被PA0、PC13、PE6、PA2、PC5上的中断唤醒。
(8)退出低功耗模式后,默认使用MSI作为系统时钟进行唤醒,此时需要调用SystemClock_Config()重新配置系统时钟,同时GPIO、USART、SPI、I2C等也需要重新配置恢复。
(9)特殊的,关于USART、SPI、I2C等接口的恢复,
需要将usart.c中的引脚配置单独写出来,如下图所示,如果直接调用MX_USART1_UART_Init()无法正常恢复,具体原因我还尚未分析出来
STM32L4系列HAL库低功耗策略----STOP2和STANDBY
最新推荐文章于 2024-06-05 09:00:00 发布