完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
项目开发需求,STM32L053R8T6待机模式
待机模式下功耗最低(配置步骤也最简单),所有功能都停止 (这里使用的LL库函数/HAL库函数) 进入待机模式之前,为了正常退出待机模式需要配置唤醒源,这里是WAKEUP引脚上升沿唤醒 STM32L053R8T6唤醒引脚有PC13和PA0,硬件电路按下按键产生上升沿。我将其配置成了外部中断上升沿触发模式。 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = KC13_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(KC13_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = KA0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(KA0_GPIO_Port, &GPIO_InitStruct); 进入待机模式之前需要使能唤醒引脚 LL_PWR_EnableWakeUpPin(LL_PWR_WAKEUP_PIN1|LL_PWR_WAKEUP_PIN2); //LL库函数 使能唤醒引脚 //等同寄存器操作 PWR->CSR|=PWR_CSR_EWUP1|PWR_CSR_EWUP2; 以下是进入待机模式 代码 / //库函数 void stop(void) { //LL_PWR_DisablePVD(); //失能电压调节器 //LL_PWR_EnterLowPowerRunMode(); //深度睡眠模式下调压器进入低功耗模式 //LL_LPM_EnableSleepOnExit(); //SLEEPONEXIT = 1 LL_LPM_EnableDeepSleep(); //SLEEPDEEP位=1:进入低功耗时为深度睡眠模式 LL_PWR_SetPowerMode(LL_PWR_MODE_STANDBY); //PDDS位=1:器件在CPU进入深度睡眠时进入待机模式 //__set_PRIMASK(1); //屏蔽所有可屏蔽中断 //__disable_irq(); //关闭总中断 LL_SYSTICK_DisableIT(); //失能(挂起)系统时钟中断 LL_PWR_ClearFlag_WU(); //WUF位=0:清除收到唤醒事件标志 __WFI(); // SystemInit(); } //寄存器 //void enter_Standby(void) //{ // /*EnableClocks*/ // RCC->APB1ENR|=RCC_APB1ENR_PWREN; // /*PrepareforStandby*/ // //ifWKUPpinsarealreadyhigh,theWUFbitwillbeset // PWR->CSR|=PWR_CSR_EWUP1|PWR_CSR_EWUP2; // PWR->CR|=PWR_CR_CWUF;//cleartheWUFflagafter2clockcycles // PWR->CR|=PWR_CR_ULP;//V_{REFINT}isoffinlow-powermode // PWR->CR|=PWR_CR_PDDS;//EnterStandbymodewhentheCPUentersdeepsleep // SCB->SCR|=SCB_SCR_SLEEPDEEP_Msk;//low-powermode=stopmode // SCB->SCR|=SCB_SCR_SLEEPONEXIT_Msk;//reenterlow-powermodeafterISR // __WFI();//enterlow-powermode //} 项目:两节1.5V电池串联供电,外设主要包括蓝牙、OLED等,使用的内部晶振,实测工作状态电流13mA,待机模式电流65uA,差强人意。 (单片机无程序状态下,电路电流为500mA左右,这电路就很离谱) 注意: 高阻态并不代表外围电路没有电流,如果电路中有使用I/O口控制外设电源的,那么进入待机模式后一定要实测,要实测,实测。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:52 , Processed in 0.678837 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号