您的位置:首页 > 其它

halt低功耗模式

2016-09-25 15:37 183 查看
1. stm8l152有5种低功耗模式,wait mode, low power run mode, low power wait mode, active-halt mode, halt mode.

2. 在halt模式下,cpu和外设时钟停止,可以通过外部中断或者复位来唤醒。

3. 本实验设计为:led灯亮,紧接着进入halt模式,有按键时,中断,快速唤醒,led灯灭。

     PWR_FastWakeUpCmd(ENABLE);  //快速唤醒使能

     //所有IO输出低电平

    GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);//推挽输出 低电平

    GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);

    GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);

    GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_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);//初始化按键,GPB6带上拉带中断输入

    

    

    

    EXTI_DeInit (); //恢复中断的所有设置 

    EXTI_SetPinSensitivity (EXTI_Pin_6,EXTI_Trigger_Falling);//外部中断6,下降沿触发,向量号14

    enableInterrupts();//使能中断

    

    PWR_UltraLowPowerCmd(ENABLE);//超低功耗

    while(1)

    {

        Delay(0x0FFF);

        GPIO_ResetBits (GPIOD,GPIO_Pin_4);

        halt();

    }

INTERRUPT_HANDLER(EXTI6_IRQHandler,14)

{

    /* In order to detect unexpected events during development,

       it is recommended to set a breakpoint on the following instruction.

    */

    EXTI_ClearITPendingBit (EXTI_IT_Pin6);

    GPIO_SetBits(GPIOD,GPIO_Pin_4);

    //Delay(0xfffffFFF);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: