如题,使用stm8L101调用halt()进入低功耗,外部中断唤醒,测试功耗达到40uA,和手册上0.4uA相去甚远。查找网上资料,需要调用 PWR_FastWakeUpCmd(DISABLE);PWR_UltraLowPowerCmd(ENABLE);这两个函数,然而调用编译出错:没有找到这两个函数的定义。
如果我调用PWR->CSR2 = 0x02;也同样报错。
使用的库是官网下载的:STM8L10X-en.stsw-stm8012;
代码如下
void main(void)
{
GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_High_Slow);//所有不使用的IO输出低电平
GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_High_Slow);
GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_High_Slow);
GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_High_Slow);
GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//GPIO初始化
GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_Mode_In_PU_IT);//初始化按键,GPB1带上拉带中断输入
EXTI_DeInit (); //恢复中断的所有设置
EXTI_SetPinSensitivity (EXTI_Pin_1,EXTI_Trigger_Falling);//外部中断1,下降沿触发,向量号9
enableInterrupts();//使能中断
// PWR_FastWakeUpCmd(DISABLE);
// PWR_UltraLowPowerCmd(ENABLE);
while(1)
{
Delay(0xFFFF);
GPIO_SetBits (GPIOD,GPIO_Pin_0);
EXTI_DeInit();
CLK_DeInit();
// PWR->CSR2 = 0x02;
halt();//挂起,最低功耗
EXTI_SetPinSensitivity (EXTI_Pin_1,EXTI_Trigger_Falling);
}
}
手册中对于PWR只有一处解释,实在找不到解决的办法,求大神解释!!!
|