stm8l152 功耗问题

[复制链接]
1171|2
 楼主| ackermander 发表于 2017-7-26 16:41 | 显示全部楼层 |阅读模式
本帖最后由 ackermander 于 2017-7-26 16:44 编辑

进入RTC 中断后就会多出200uA 的电流, 是什么原因, 中断什么代码也没有, 而且在计时的时候功耗也不会变化.
改了很多代码都没用, 只有重新插拔电源才有用.

--------------------------------------------------stm8l15x_it.c 中的代码----------------------------------------
INTERRUPT_HANDLER(RTC_IRQHandler,4)
{
/* In order to detect unexpected events during development,
   it is recommended to set a breakpoint on the following instruction.
*/
  //GPIO_SetBits(GPIOB, 0x3);
}
------------------------------------------------------------------------------------------------------------------------
-----------------------------------------main.c 中的代码-----------------------------------------------------------
main()
{
..........一些无关配置.......
        RTC_Config_copy();
        while(1)
  {
                //disable_other();
                // 进入halt() 状态.
                halt();
               
}

}

void RTC_Config_copy(void)//设置RTC中断
{
        /* Select LSE as system clock source */
        CLK_SYSCLKSourceSwitchCmd(ENABLE);
        CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSE);
        /* system clock prescaler: 1*/
        CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
        while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSE)
        {}

        //RTC_DeInit(); //此句可以不加,视情况而定,加了之后,功耗会提高很多
        CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//RTC时钟门控使能
        CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);
        RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);
        RTC_ITConfig(RTC_IT_WUT, ENABLE);
        RTC_SetWakeUpCounter(10);//10秒的唤醒周期
        RTC_WakeUpCmd(ENABLE);
}



------------------------------------------------------------------------------------------------------------------------
NE5532 发表于 2017-7-27 10:39 | 显示全部楼层
一直在用这个功能,没有发现BUG,你进中断以后MCU唤醒了,功耗是要上升啊,处理完了要接着睡觉咯。
地瓜patch 发表于 2017-7-31 23:33 | 显示全部楼层
低功耗设计我一直用pic
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部