平常人 发表于 2013-2-21 16:00 
有电压无电流,功耗等于零!
进入待机模式之前我将用到的外设做了这些处理,您看这里面有哪些不妥的地方,请指点一下~~~
void Before_Standby(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AIN;// GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DMACmd(ADC1, DISABLE); //ADC命令,失能
ADC_Cmd(ADC1, DISABLE); //关闭ADC1
DMA_Cmd(DMA1_Channel1, DISABLE);
TIM_Cmd(TIM2, DISABLE);
TIM_Cmd(TIM3, DISABLE);
TIM_Cmd(TIM4, DISABLE);
TIM_Cmd(TIM5, DISABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC | RCC_AHBPeriph_DMA1, DISABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA |
RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO |
RCC_APB2Periph_ADC1, DISABLE);
RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3 |
RCC_APB1Periph_TIM4 | RCC_APB1Periph_TIM5 , DISABLE);
}
void Sys_Standby(void)
{
NVIC_SystemLPConfig(NVIC_LP_SLEEPDEEP,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟
PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚
PWR_EnterSTANDBYMode(); //进入STANDBY模式
}
void Sys_Enter_Standby(void) //系统进入待机模式
{
Before_Standby();
Sys_Standby();
}
|