STM32低功耗模式

张开发
2026/4/10 18:55:21 15 分钟阅读

分享文章

STM32低功耗模式
在STM32F1系列单片机中低功耗有三种模式睡眠停止待机三种模式电源消耗依次降低唤醒时间依次升高唤醒源不同正常模式芯片正常给外设IO/SPI/TIM内核CM3存储器SRAM / FLASH提供电源和时钟信号睡眠模式介绍睡眠模式下芯片把内核时钟信号停掉了程序节能差不会复位睡眠模式几乎不用进入程序有两种方式可以进入睡眠模式WFI内核指令WFE内核指令唤醒程序根据指定内核指令进入的睡眠模式有相应的唤醒条件通过WFI进入睡眠模式任意中断通过WFE进入睡眠模式唤醒事件停止模式介绍停止模式芯片将时钟系统关闭了但依旧供着电保留着上次运行的数据不会复位进入PDDS和LPDS SLEEPDEEP位 WFI或WFE唤醒任意外部中断都可唤醒在唤醒后要重新配置时钟程序从进入停止模式的地方运行待机模式介绍待机模式下芯片将时钟系统和供电系统都关闭了能做到最大节能但程序会复位待机模式下所有IO引脚都处于高阻态除了复位引脚被使能的唤醒引脚待机模式下不能下载程序必须退出待机模式才能下载进入PDDS位 SLEEPDEEP位 WFI 或 WFE,在进入待机模式前要清除唤醒位对CWUF置1并设置好唤醒源唤醒WKUP 引脚的上升沿RTC闹钟NRST 引脚上的外部复位IWDG复位在使用WKUP引脚唤醒时要清除WUF标记位在stm32f1系列WKUP唤醒固定为PA0高电平唤醒唤醒后程序从头开始运行进入流程1初始化WKUP为中断触发源参考外部中断引脚初始化2外设低功耗处理设置MCU外围外设进入低功耗3使能电源时钟__HAL_RCC_PWR_CLK_ENABLE (~)4使能WKUP的唤醒功能HAL_PWR_EnableWakeUpPin(~)5清除唤醒标记WUF__HAL_PWR_CLRAR_FLAG (~)6进入待机模式HAL_PWR_EnterSTANDBYMode~相关寄存器SCB_SCR (系统控制寄存器) : 选择停止模式和待机模式就是 SLEEPDEEP位PWR_CR 电源控制寄存器设置低功耗相关PWR_CSR (电源控制 / 状态寄存器) 用于查看系统当前状态PWR_CRPWR_SCR相关HAL库驱动函数功能描述驱动函数关联寄存器进入睡眠模式HAL_PWR_EnterSLEEPMode (~)SCB_SCR进入停止模式HAL_PWR_EnterSTOPMode (~)PWR_CR/SCB_SCR进入待机模式HAL_PWR_EnterSTANDBYMode~PWR_CR/SCB_SCR使能WKUP管脚唤醒功能HAL_PWR_EnableWakeUpPin(~)PWR_CSR清除PWR相关标记位__HAL_PWR_CLRAR_FLAG (~)PWR_CR使能电源时钟__HAL_RCC_PWR_CLK_ENABLE (~)RCC_APB1ENR

更多文章