历史上的今天
今天是:2025年07月08日(星期二)
2019年07月08日 | stm32l051低功耗之stop模式
2019-07-08 来源:eefocus
STM32L051算是一款使用的人不多的低功耗芯片,资料也没有像F系列那么多,但是它在低功耗方面性能优异。ST官方关于STM32L051停机模式低功耗给的指标如下,在stop without rtc模式下电流消耗能达到0.4ua,在stop with rtc模式下电流消耗能达到0.8ua。
在进入停机模式之前,按照ST官方例程,首先对引脚进行配置,设置成模拟输入状态。
void stop_mode_config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWREx_EnableUltraLowPower();
HAL_PWREx_EnableFastWakeUp();
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_MSI);
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
GPIO_InitStructure.Pin = GPIO_PIN_All;
GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;
GPIO_InitStructure.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);
__HAL_RCC_GPIOA_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOC_CLK_DISABLE();
__HAL_RCC_GPIOD_CLK_DISABLE();
}
配置外部中断,进入停止模式,等待唤醒
void valve_enter_ed_stop_mode(void)
{
//config main key with interrupt
bsp_init_main_key(BUTTON_MODE_EXTI);
//enter STOP without RTC
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
}
单片机供电3.3V,测试功耗,为0.42ua,基本与官方指标一致。

当然在做低功耗开发时,CPU的低功耗特性只是做低功耗产品的开发的一部分,外围器件的功耗同样起决定作用。要想达到理想的功耗,CPU和外围器件必须能够完美的结合。很多情况下CPU在没有外部器件的情况下功耗是理想的,基本上与数据手册描述的一样,所选的外围器件的功耗也很低,但是CPU与外围器件连起来时就需要另加考虑。
外部器件能用IO口供电的就尽量用IO口供电,在stop模式下,CPU的IO口的状态是保持的,这样外围器件的供电开关很容易控制。像外部存储芯片可以用IO口供电。有些外围芯片不适合用IO口供电的,像有些射频芯片,因为这些射频芯片上电启动要相当长的时间。
如果CPU外围有器件连接,且没有用IO供电,一定要将CPU与器件相连的IO口设置成适当的模式,否则这些引脚可能会吸收很大的电流。
史海拾趣
|
实验原理ARM的P0.1口接按钮,再通过P0.0控制LED的亮、灭。本实验的电路图以及实验均在上一个实验基础之上修改。其中电路图只多了一个开关。 Proteus仿真电路图 实验步骤略(与上一实验相同) C语言源程序/************************************* ...… 查看全部问答> |
|
一、引言 随着社会的不断进步,汽车正为越来越多的人所使用,而相应的,交通事故也越来越多。全球每年由交通事故造成的人员和财产损失的数目是惊人的,因此,车辆安全问题已引起人们的高度重视。对大量交通事故的分析表明,80%以上的车祸是由 ...… 查看全部问答> |
|
单位要我搞个改进,,思路有了,,哪个有好办法,,近来交流下,,,十万着急 现在生产线测试产品的工具又落后又不好看,,要升级,,我负责硬件和软件。。。 要测试 1. 编码 2. 总线电流 3. 24V电源电流 4. 故障报警等等参数,,,有没有朋友有好建议。。我方法有 ...… 查看全部问答> |
|
Loaded symbols for \'D:\\WINCE500\\PBWORKSPACES\\VIA500_FAB\\RELDIR\\CEPC_X86_RELEASE\\ATAPI.DLL\' Unloaded symbols for \'D:\\WINCE500\\PBWORKSPACES\\VIA500_FAB\\RELDIR\\CEPC_X86_RELEASE\\ATAPI.DLL\' Loaded symbols for \'D:\\W ...… 查看全部问答> |
|
友善之臂 mini2440 + 3.5"LCD 套餐 300转让! 自降100哈,遇到高兴的事了,嘿嘿 300元转让友善之臂 mini2440 + 3.5\"LCD 套餐 全新的,买来后就没有怎么用过,详细介绍请看: http://www.arm9.net/mini2440.asp 有意的请联系我,卖价300元,东西绝对全新的 QQ 653338192 ...… 查看全部问答> |
|
刚刚看到了我们的辛大斑竹写的一个帖子,我就把我最近看的一个问题贴出来,程序是我的一个学长写的,一般我们在写单片机程序的时候是把不同功能的文件写成一个模块,即.c文件,然后再写出对应的.h文件作出对外的接口和函数申明,当在别人地方需要使 ...… 查看全部问答> |




