求助大神,使用stm8L调用PWR_UltraLowPowerCmd(ENABLE);函数出错??

2019-07-19 20:37发布

如题,使用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只有一处解释,实在找不到解决的办法,求大神解释!!!




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。