打印
[STM8]

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

[复制链接]
8029|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 | 只看该作者
寄存器设置  合理   应该是可以搞定的   问题不是很大   顶一个   呵呵

使用特权

评论回复
5
979158321|  楼主 | 2013-3-26 10:25 | 只看该作者
请大家给一个具体思路步骤吧

使用特权

评论回复
6
IJK| | 2013-3-26 10:33 | 只看该作者
STM8L halt指令后,rtc可以继续跑

使用特权

评论回复
7
cnc2020| | 2014-6-6 22:57 | 只看该作者
good day

使用特权

评论回复
8
单人戏| | 2016-12-20 14:18 | 只看该作者
现在遇到这种需要,请问怎么实现的

使用特权

评论回复
9
看不清的天空| | 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();
    }
}

使用特权

评论回复
10
cmg227| | 2017-7-7 11:08 | 只看该作者

CEC中国电子旗下华大半导体有超低功耗单片机,M0+内核,宽电压低功耗,电气性能参数优于ST,价格和供货稳定可靠。
陈生:18521702816
QQ:290814902

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝