[mw_shl_code=c,true]void Sys_Active_Halt_Mode(void)[/mw_shl_code]
[mw_shl_code=c,true]{
stm8_clock_init(2,0);//切换时钟 LSI 系统时钟 不分频
CLK_PCKENR1 = 0X00; //除了RTC、ADC关闭其他不需要的外设时钟
CLK_PCKENR2 = 0X05;
CLK_ICKCR |= 1<<4;//关闭主电压调节器,工作在ULP模式
// CLK_ICKCR |= 1<<5; //快速唤醒模式,唤醒后自动选用HSI/8为系统主时钟
CLK_ICKCR &= ~(1<<5); //唤醒后自动选用上次配置时钟
PWR_CSR2 = 0X02;//ULP模式
_asm("rim"); //开启中断
_asm("halt");//进入活跃停机模式
}[/mw_shl_code]
在while(1)中直接调用上面的函数,
[mw_shl_code=c,true]main()
{
stm8_clock_init(0,5); //切换系统时钟为HSI/32=0.5MHz
while (1)
{
Sys_Active_Halt_Mode();//测得功耗0.25mA
}
}[/mw_shl_code]
我的低功耗配置有什么问题吗?现在测试的功耗是0.25mA,根本就不是uA级别的!
请教高手指点一下,期待……
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>