中级会员
 
- 积分
- 231
- 金钱
- 231
- 注册时间
- 2015-3-12
- 在线时间
- 18 小时
|
发表于 2015-12-5 13:29:06
|
显示全部楼层
我提个建议,把你没有用到的引脚全部输出低。这样会省点电。
另外,我也是同样的问题。希望你帮我找找看,是不是软件的问题。我的低功耗有8个MA。整个人都不好了
进入halt();之前的代码是:
void EnterStopMode(void)
{
  WR->CSR2 = 0x2; //设置STM8进入低电压模式
//停机前关闭不需要的功能模块的时钟
TIM4_Cmd(DISABLE);
while((TIM4->CR1 & TIM4_CR1_CEN) != 0x00);
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);
CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,DISABLE);//
CLK_PeripheralClockConfig(CLK_Peripheral_BEEP, DISABLE);//关闭蜂鸣器时钟
TIM2_Cmd(DISABLE);
while((TIM2->CR1 & TIM_CR1_CEN) != 0x00);
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,DISABLE);///这个和配置按键中断有冲突,不能放在配置按键中断后面,原因不详
//以上是关闭时钟
///没有用的脚输出低
GPIO_Init(GPIOA , GPIO_Pin_0| GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5| GPIO_Pin_6 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOB , GPIO_Pin_0| GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOC , GPIO_Pin_0| GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5| GPIO_Pin_6 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOD , GPIO_Pin_0| GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_6 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow); GPIO_Init(GPIOE , GPIO_Pin_0| GPIO_Pin_6 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow); GPIO_Init(GPIOF , GPIO_Pin_0| GPIO_Pin_1 | GPIO_Pin_5| GPIO_Pin_6 | GPIO_Pin_7 , GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOG , GPIO_Pin_0| GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 , GPIO_Mode_Out_PP_Low_Slow);
//有用脚设置
GPIO_Init(GPIOA , GPIO_Pin_4 , GPIO_Mode_Out_PP_Low_Slow);///蜂鸣器
GPIO_Init(GPIOB , GPIO_Pin_1 , GPIO_Mode_Out_PP_Low_Slow);///电池ADC
GPIO_Init(GPIOB , GPIO_Pin_5 , GPIO_Mode_Out_PP_High_Slow);///充电控制,禁止充电
GPIO_Init(GPIOB , GPIO_Pin_6 , GPIO_Mode_Out_PP_High_Slow);///放电控制,禁止放电
GPIO_Init(GPIOD , GPIO_Pin_5 , GPIO_Mode_Out_PP_High_Slow);///电池给VCC外设供电的开关
GPIO_Init(GPIOE , GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4, GPIO_Mode_Out_PP_Low_Slow);//
GPIO_Init(GPIOE, GPIO_Pin_5 , GPIO_Mode_Out_PP_Low_Slow);///电容ADC
} |
|