1、单个芯片进行低功耗测试的时候,没有任何外围器件时,将所有的IO口均设为模拟输入(AIN),无上下拉电阻,400khz,所有外设均不开启,按照如下程序进行进入STOP模式:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
PWR_FastWakeUpCmd(ENABLE);
PWR_UltraLowPowerCmd(ENABLE);
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
其中RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);必须要有,否则功耗将会大18ua左右;
这时的功耗约为0.4ua;
standby模式为0.3ua
2、单个芯片进行低功耗模式,设置RTC,无唤醒时,为1.7ua左右;
有唤醒时,进入stop模式为1.7ua,唤醒后再进入低功耗则为4.5ua(很奇怪)
3、单个芯片进行低功耗模式,运行RTC,LCD,开SPI,按键中断等功能,功耗为7.5ua,注意点是
(1)将无关的IO口设置为模拟输入(AIN) ,如果有一个IO口没有设置,则功耗多出10ua左右,这里同时要将SW调试的接口也要这么设置,BOOT引脚设置与否对电流影响不大。
(2)在进入低功耗前将SPI(将所开的外设关闭)关闭。
(3)在跳出低功耗时,系统自动将时钟切换为MSI时钟,要将时钟调回HSI。
(4)在进入低功耗时,系统会保存原有的IO设置状态。
(5)在跳出低功耗时,要重新开启外设。
4、STM32l152进入低功耗时,可以在线调试,只要调用函数DBGMCU_Config(DBGMCU_STOP,ENABLE);
|