我的程序如下,程序运行以后电流有1.5mA,如果使用halt指令程序就在那停机不运行,因为刚使用stm8,对于低功耗不太了解。想问问大家具体怎么实现呢?最好是给个demo。谢谢
static void CLK_Config(void)
{
/* Select HSE as system clock source */
CLK_SYSCLKSourceSwitchCmd(ENABLE);//使能时钟切换
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);//选择外部低速时钟作为时钟源
/* system clock prescaler: 1*/
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);//设置系统时钟分频
while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSI)//等待时钟稳定
{}
}
void main(void)
{
CLK_Config();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
/*
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);
TIM1_DeInit();
TIM1_TimeBaseInit(100,TIM1_CounterMode_Up,1000,0);
TIM1_ARRPreloadConfig(ENABLE);
TIM1_ITConfig(TIM1_IT_Update,ENABLE);
TIM1_Cmd(ENABLE);
*/
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_Prescaler_32,TIM2_CounterMode_Up,1024);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_ITConfig(TIM2_IT_Update,ENABLE);
TIM2_Cmd(ENABLE);
GPIO_Init(GPIOC, GPIO_Pin_3, GPIO_Mode_Out_PP_High_Fast);
GPIO_ResetBits(GPIOC , GPIO_Pin_3);
enableInterrupts();
while (1)
{
if(measure_count%2)
{
GPIO_ResetBits(GPIOC , GPIO_Pin_3);
wfi();
}
else
{
GPIO_SetBits(GPIOC , GPIO_Pin_3);
wfi();
}
}
} |