打印
[STM32F1]

STM32F103停止模式功耗大

[复制链接]
5806|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jaywhitejay|  楼主 | 2014-8-9 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jaywhitejay 于 2014-8-11 10:17 编辑

大家好,求助一个STM32F103的停止模式下功耗大的问题。
我现在停止模式下用电池供电的功耗达到了5.5mA。我使用PVD中断双向触发实现进入停止模式和唤醒
我的程序工作流程是这样的:主电工作中->掉主电进入电池供电(2.5V)->PVD中断->降低工作频率、关闭时钟、IO口设为模拟输入->进入停止模式,测量电流有5.5mA。
求大神们给指点。
附上进停止模式前的处理程序。
void  LowPower_Init(void)
{
  RCC_HCLKConfig(RCC_SYSCLK_Div512);
  RCC_PCLK2Config(RCC_HCLK_Div16);                        
  RCC_PCLK1Config(RCC_HCLK_Div16);

  ADC_Cmd(ADC1, DISABLE);    //关闭ADC
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_ADC1|RCC_APB2Periph_AFIO, DISABLE);      //关闭USART/ADC等的时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, DISABLE); //关闭GPIOA等的时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , DISABLE); //关闭GPIOB等的时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , DISABLE); //关闭GPIOC等的时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , DISABLE); //关闭GPIOD等的时钟
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,DISABLE); //关闭定时器等的时钟

  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_All ;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_Init(GPIOD, &GPIO_InitStructure);   //所有管脚配置成模拟输入
   
        //  * *************关闭中断****************     
  EXTI_InitStructure.EXTI_Line = EXTI_Line0 |EXTI_Line1 |  EXTI_Line2|  EXTI_Line3|    EXTI_Line4|  EXTI_Line5|  EXTI_Line6|  EXTI_Line7|  EXTI_Line8|  EXTI_Line9 |EXTI_Line10 |EXTI_Line11 |  EXTI_Line12;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;  
  EXTI_InitStructure.EXTI_LineCmd = DISABLE;
  EXTI_Init(&EXTI_InitStructure);

    TIM_ITConfig(TIM2,TIM_IT_Update,DISABLE);  //关闭定时器中断
    TIM_Cmd(TIM2,DISABLE);   
    USART_Cmd(USART1, DISABLE);        //关闭串口
    USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
}
沙发
airwill| | 2014-8-9 22:22 | 只看该作者
注意, 有没有 IO 口电流泄露. 好好查一下.

使用特权

评论回复
板凳
pofu007| | 2014-8-10 09:43 | 只看该作者
5mA的话,是外围电路在消耗电流的可能性很大,你去datasheet下查下有什么外设会消耗5mA的电流。
另外模拟输入我没记错的话应该是这样GPIO_Mode_AIN。

使用特权

评论回复
地板
mmuuss586| | 2014-8-10 12:31 | 只看该作者
你这IO配置的输入,不是模拟输入;

使用特权

评论回复
5
mmuuss586| | 2014-8-10 12:32 | 只看该作者
这是XXX_gpio.h中的部分定义
typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

使用特权

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

本版积分规则

8

主题

23

帖子

0

粉丝