×
嵌入式 > 技术百科 > 详情

STM8L Active-halt模式下的低功耗调试

发布时间:2020-06-03 发布时间:
|

此模式下的低功耗与halt模式下的低功耗差不多,但Active-halt模式下多了个唤醒,而halt模式下是深睡,主频外设什么的全部都关掉了;Active-halt模式下,一样的首先要将没用到的GPIO全部输出低,其它用到的按要求配置即可,这个低功耗主要的就是GPIO的配置状态,及外设的功耗,其实也很容易就完成。还有最重要的一点,PWR_UltraLowPowerCmd(ENABLE);//超低功耗这句必须得有,不然不会到超低功耗。


void RTC_Config(void)


{


    //CLK_LSEConfig(CLK_LSE_ON);


    CLK_LSICmd(ENABLE);//使能LSI


    CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);//RTC时钟源LSI,1分频=38K


    while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);//等待LSI就绪


    


    RTC_WakeUpCmd(DISABLE);


    CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//RTC时钟门控使能


    RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);//38K/16=2.375k=0.421ms


    RTC_ITConfig(RTC_IT_WUT, ENABLE);//开启中断


    RTC_SetWakeUpCounter(2375*5);//2375*0,421=1S左右


 


    //ITC_SetSoftwarePriority(RTC_CSSLSE_IRQn, ITC_PriorityLevel_3);//优先级


    


    enableInterrupts();


}


 


 


int main( void )


{


   asm("sim");   //全局中断关闭


   // CLK_Config();


   PWR_FastWakeUpCmd(ENABLE);  //快速唤醒使能


   RTC_Config();


   GPIOInit();   //IO初始化


   


   asm("rim");   //全局中断开启


   PWR_UltraLowPowerCmd(ENABLE);//超低功耗


   RTC_ITConfig(RTC_IT_WUT, ENABLE);//唤醒定时器中断使能


   RTC_WakeUpCmd(ENABLE);//RTC唤醒使能


 


   while(1)


{


       halt();


}


}


实测Active-halt睡眠模式 时为1.0uA,接近理论的0.9-2.1uA


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ADI 高精度低功耗精密放大器