[STM8] STM8L 如何进入低功耗模式,且rtc继续运行

[复制链接]
8761|9
 楼主| 979158321 发表于 2013-3-25 16:58 | 显示全部楼层 |阅读模式
做了块板子,希望在外电源掉电情况下,进入低功耗,且只有rtc运行,在外部电源恢复时,程序从头开始运行,且时间不丢失
IJK 发表于 2013-3-25 17:22 | 显示全部楼层
外电源掉电情况下,进入低功耗,且只有rtc运行

这个应该可以实现,执行HALT指令就可以进入低功耗,之前先让RTC跑起来即可
 楼主| 979158321 发表于 2013-3-25 17:37 | 显示全部楼层
halt指令后,rtc会关闭吗,还会一直计时吗
hawksabre 发表于 2013-3-25 18:38 | 显示全部楼层
寄存器设置  合理   应该是可以搞定的   问题不是很大   顶一个   呵呵
 楼主| 979158321 发表于 2013-3-26 10:25 | 显示全部楼层
请大家给一个具体思路步骤吧
IJK 发表于 2013-3-26 10:33 | 显示全部楼层
STM8L halt指令后,rtc可以继续跑
cnc2020 发表于 2014-6-6 22:57 | 显示全部楼层
good day
单人戏 发表于 2016-12-20 14:18 | 显示全部楼层
现在遇到这种需要,请问怎么实现的
看不清的天空 发表于 2017-6-14 13:02 | 显示全部楼层
本帖最后由 看不清的天空 于 2017-6-14 13:03 编辑

void RTC_Config(void)
{
        CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1); //选择LSE作为时钟 32K/1=32K
        while (CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);
        
        RTC_WakeUpCmd(DISABLE);
        CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//RTC时钟门控使能
        RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);  //32K/16 = 2K
        RTC_ITConfig(RTC_IT_WUT, ENABLE);
        
        Delay(0x002F);  
        RTC_SetWakeUpCounter(2000);
        
        ITC_SetSoftwarePriority(RTC_IRQn, ITC_PriorityLevel_3);//优先级      
        enableInterrupts();
}
/*******************************************************************************
函数备注:要实现最低功耗CPU的IO口要输出确定的电平;例程除了按键与LED接口其他IO全部输出低;
              还需要使用超低功耗指令;                  
              实测此例程
              ACTIVE-HALT:主振荡器/CPU/大多数外设停止;LSI/LSE运行;BEEP/IWDG/RTC/LCD的一个或多个
              使能,即可通过HALT指令进入ACTIVD-HALT模式;           
*******************************************************************************/
int main( void )
{
     CLK_HSICmd(DISABLE);
     PWR_FastWakeUpCmd(ENABLE);  //快速唤醒使能
     RTC_Config();
     //所有IO输出低电平
    GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
      
    PWR_UltraLowPowerCmd(ENABLE);//超低功耗
   
    RTC_ITConfig(RTC_IT_WUT, ENABLE);//唤醒定时器中断使能
    RTC_WakeUpCmd(ENABLE);//RTC唤醒使能

   
    while(1)
    {  
         halt();
    }
}
cmg227 发表于 2017-7-7 11:08 | 显示全部楼层

CEC中国电子旗下华大半导体有超低功耗单片机,M0+内核,宽电压低功耗,电气性能参数优于ST,价格和供货稳定可靠。
陈生:18521702816
QQ:290814902
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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