【HAL库】STM32F407---低功耗休眠

一、低功耗休眠模式

模式 内核 外设时钟 功耗 唤醒速度 唤醒方式 唤醒后操作
Sleep(睡眠) 停止 开启 7~14mA <1us 任意中断 / 事件 继续运行
Stop(停机) 停止 关闭 240~320uA <10us EXTI 外部中断、RTC、看门狗 重配系统时钟
Standby(待机) 断电 全部关掉 1.8~4uA 300~500us WKUP 引脚、RTC 闹钟、复位、IWDG 重新初始化

二、功能代码实现

1. 睡眠模式 - Sleep

由于睡眠模式可以通过任意中断唤醒,所以在进入睡眠模式前,把非唤醒中断关闭,唤醒后再恢复对应的中断。

c 复制代码
//进入睡眠模式:任意中断可唤醒
void SYS_enter_sleep_mode(void)
{
	//暂停滴答计数
	HAL_SuspendTick();// 暂停 SysTick,防止频繁唤醒

	// 清除唤醒标记
	__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

	// 如果使用WK-UP引脚唤醒那么需要使能
	HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);

	// 进入SLEEP模式
	HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);

	//恢复滴答计数器
	HAL_ResumeTick();
}

2. 停机模式 - Stop

c 复制代码
//进入停机模式
void SYS_enter_stop_mode(void)
{
	//暂停滴答计数
	HAL_SuspendTick();

	// 清除唤醒标记
	__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

	// 如果使用WK-UP引脚唤醒那么需要使能
	HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);

	// 进入STOP模式
	HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

	// 唤醒后:重新初始化系统时钟
	SystemClock_Config();
	//恢复滴答计数器
	HAL_ResumeTick();
}

3. 待机模式 - Standby

c 复制代码
//进入待机模式
void SYS_enter_standby_mode(void)
{
	// 清除唤醒标记
	__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

	// 如果使用WK-UP引脚唤醒那么需要使能
	HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);

	// 进入待机模式
	HAL_PWR_EnterSTANDBYMode();
}
相关推荐
水果里面有苹果7 小时前
39-UM960-RTK模块-和芯星通
嵌入式硬件
电子科技圈7 小时前
从工厂直达全球市场:emnify为联网设备制造商推出免费SGP.32引导网络接入的OEM计划
嵌入式硬件·mcu·物联网·智能硬件·iot·交通物流
736c7 小时前
STM32-FLASH 11
stm32·单片机
Zhang.Yi8 小时前
STM32-ADC
stm32·单片机·嵌入式硬件
Messy create11 小时前
【储能系统三大核心】
网络·stm32·单片机·算法·能源
Nomarsgo11 小时前
生产车间产线巡检解决方案:基于联控 Lionconit PTC-1006 工业手持平板电脑打造移动化、数字化车间巡检终端
单片机·嵌入式硬件·电脑
IT实战课堂之秋老师11 小时前
基于IOT技术的太阳能板表面清洁程度检测系统设计
单片机
智购科技无人售货机厂家11 小时前
2026自动售货机出货口防夹手设计:从红外检测到电机反转的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
2601_9667990411 小时前
酷嗨米J300:多平台同步直播的硬件级解法,一台相机三路输出不卡顿
嵌入式硬件
CHENKONG_CK12 小时前
晨控CK-FR08系列与欧姆龙NX系列PLC配置MODBUSTCP例程使用手册
网络·单片机·嵌入式硬件