打印

stm32进低功耗后,IO口均存在电压?????

[复制链接]
4394|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tonly0212|  楼主 | 2013-2-21 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
向各位请教一下,使用stm32f1103进入待机模式后,为什么每个IO口都存在电压,
进入待机模式之前将IO口设置为模拟输入的情况下,进入待机模式后量得每个IO口的电压为0.25V左右,
如果设置为浮空输入,进入待机模式后量得每个IO口的电压为0.12V左右,这是为什么啊????
沙发
IJK| | 2013-2-21 15:38 | 只看该作者
0.25V左右/0.12V左右 应该是漏电之类吧,感觉是正常的

使用特权

评论回复
板凳
平常人| | 2013-2-21 16:00 | 只看该作者
有电压无电流,功耗等于零!

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
tonly0212 + 2 很给力!
地板
tonly0212|  楼主 | 2013-2-21 16:35 | 只看该作者
平常人 发表于 2013-2-21 16:00
有电压无电流,功耗等于零!

IO口连接了一片6204B502  带使能端的电压芯片,进入待机模式该芯片依然被使能导通,这怎么解释啊,按理说0.2V远远没有达到使能该芯片的电压呀。。。

使用特权

评论回复
5
tonly0212|  楼主 | 2013-2-21 17:07 | 只看该作者
平常人 发表于 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();
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

24

帖子

0

粉丝