关于STM8L系列低功耗井盖板设计记录【云南昆明电子设计开发工程师】

由于需要对井盖姿态进行检测,采用了ADXL362低功耗姿态芯片,配合低功耗STM8L051单片机实现,这里主要对低功耗做个简单的介绍与总结;

void RTC_Config(void)
{
        //CLK_LSEConfig(CLK_LSE_ON);
        CLK_LSICmd(ENABLE);//使能LSI
        CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//RTC时钟门控使能
        CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_64);//RTC时钟源LSI,1分频=38K  Tang=1;
        while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);//等待LSI就绪
        
        RTC_WakeUpCmd(DISABLE);
        
        RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);//38K/16=2.375k=0.421ms  
        RTC_ITConfig(RTC_IT_WUT, ENABLE);//开启中断                   ouyang=38000/64div=593;593/16div=37;   X/37=second(定时)
        //RTC_SetWakeUpCounter(23750);//23750*0,421=10S左右
        RTC_SetWakeUpCounter(22200);//370 = 10S   欧阳修改,最大修改为65530/37=1771S  即29.5分钟起来一次;22200=10分钟;
        //ITC_SetSoftwarePriority(RTC_CSSLSE_IRQn, ITC_PriorityLevel_3);//优先级
        
        enableInterrupts();
}

低功耗主要靠此RTC配置,目前配置是10分钟一次中断,那么,要更长时间,可以通过RTC中断:

#pragma vector=6
__interrupt void RTC_IRQHandler(void)
{
    rtc_wake_flag++; 
    RTC->ISR2 &=~RTC_ISR2_WUTF;
}

来计算,比如每10分钟进入此中断,当rtc_wake_flag>144时,即达到1440分钟,也就是定时24 hour啦;

点滴记录,勇敢成长......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值