實驗證明,將IO端口設成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,電流是基本相同的,最可怕的就是GPIO浮空,且電路上未外接上拉下拉,這樣電流就會比較大。 原來以來PPOUT要是輸出為0,就會浪費電流,其實只要不負載,電流和ODOUT=0時一樣樣的。 以下為部分代碼 void MUC_SLEEP(void) { GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //完全失能JTAG/SWD 不關電流也好像不影響 GPIO_PinRemapConfig( GPIO_Remap_PD01 , ENABLE );//晶振為GPIO 不關電流也好像不影響 RCC_LSEConfig(RCC_LSE_OFF);//關閉RTC 不關電流也好像也不影響 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); ADC_CONFIG(DISABLE); USART_DeInit(USART1); USART_DeInit(USART2); USART_DeInit(USART3); USART_DeInit(UART5); EXTI_INITIAL(ENABLE);//以下端口的設置最有影響 GPIO_PIN_INITIAL(GPIOA,GPIO_Pin_All,GPIO_Mode_AIN,0); //此處沒做外部喚醒 僅用于測試 EXTI合理設置GPIO不影響電流 GPIO_PIN_INITIAL(GPIOB,GPIO_Pin_All,GPIO_Mode_AIN,0); GPIO_PIN_INITIAL(GPIOC,GPIO_Pin_All,GPIO_Mode_AIN,0); GPIO_PIN_INITIAL(GPIOD,GPIO_Pin_All,GPIO_Mode_AIN,0); //PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//STOP模式 PWR_EnterSTANDBYMode();//standby模式 |