关于STM32F407 STOP模式 低功耗的电流偏大

大家好!      最近有个项目用 STM32F407VGT6  (100pin , 内1MBFLASH)  低功耗的电流偏大 , 程序请看图

测试说明如下:
     1. STM32F407VGT6 只接了8M的高频晶振和32K低频晶振 , 其它IO全部空接, 设置为输入上拉

测试结果:
     STOP模式 ,  电流300uA                     
     PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);                        //300uA
       
     待机模式 ,         12uA       
     PWR_EnterSTANDBYMode();                                                                                        //12uA

我需要STOP模式降低电流, 还需要设置或关闭 什么?

程序代码:
int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
   delay_init(168);      //初始化延时函数       
   My_RTC_Init();                                                                 //初始化RTC
   //RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0);                //配置WAKE UP中断,1秒钟中断一次           
   //RTC_Set_WakeUp(RTC_WakeUpClock_RTCCLK_Div2,8192);                //配置WAKE UP中断,0.5秒钟中断一次        
   RTC_GetTime(0,&RTC_Time);
   RTC_GetDate(0,&RTC_Date);       
   RtcMinter = RTC_Time.RTC_Minutes;       
   RTC_Set_WakeUp_Close();                                                                                                                                //关闭唤醒RTC
   delay_ms(2000);
   while(1)
   {
      LED_Init();                                          //初始化
      IoClock_DISABLE();                //关闭所以IO时钟, 影响不大
      //使能电源管理单元的时钟
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);                                 //休眼         
      PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);  //300uA
     //PWR_EnterSTANDBYMode();                                                                  //12uA
    __asm("nop");
    __asm("nop");
    __asm("nop");
    Set_HighClock();
    delay_us(100);
  }
}

(0)

相关推荐