打印
[应用相关]

stm8L低功耗设计求助

[复制链接]
736|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
android2|  楼主 | 2017-3-21 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 android2 于 2017-3-21 21:08 编辑

最近做的一个程序,在进入低功耗后。测得电流还有8.05个mA。检查好几天不知道问题所在。求高手帮助。以下是本人进入低功耗halt();之前的部分关闭代码:

void EnterStopMode(void)
{
        PWR->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
}
是有个脚没配置好。本应该置高的,被置低了。改过来后就降了几ma,另外,IIC的脚接了上拉的,不要置低。目前还有450ua .硬件里有个放电电路,没办法,会一直慢慢跑电。这个低功耗只能一个个脚去试才能找到问题。
沙发
拉克丝| | 2017-3-21 21:10 | 只看该作者
加了稳压器吧

使用特权

评论回复
板凳
309030| | 2017-3-21 21:21 | 只看该作者
IO口漏电流在做低功耗的时候影响非常大,IO口是什么状态就让他死什么状态,比如外部拉高就不要去输出低了。

使用特权

评论回复
地板
迪卡| | 2017-3-21 21:31 | 只看该作者
闲置IO口设置成输入上拉或输入下拉,其他有用IO看情况设置。

使用特权

评论回复
5
米尔豪斯| | 2017-3-21 21:43 | 只看该作者

哪个单片机?GPIO口设置对了吗?

使用特权

评论回复
6
山东电子小菜鸟| | 2017-3-21 22:14 | 只看该作者
1、
IO口漏电流在做低功耗的时候影响非常大,IO口是什么状态就让他死什么状态,比如外部拉高就不要去输出低了。
2、
闲置IO口设置成输入上拉或输入下拉,其他有用IO看情况设置。

使用特权

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

本版积分规则

137

主题

784

帖子

0

粉丝