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

2023-11-01 39浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

此模式下的低功耗与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


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台