您的位置:首页 > 其它

WFI

2016-09-25 16:26 162 查看
1. WFI与WFE的区别为,WFI等待的是中断,而WFE等待是事件,所以WFE不能进入中断服务函数,而WFI可以。

2. 实验现象和WFE一样。

    CLK_Config();//切换LSI为主时钟

    

    //不使用的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_SetPinSensitivity (EXTI_Pin_6,EXTI_Trigger_Falling);//外部中断1,下降沿触发

    enableInterrupts();//使能中断

    

    while(1)

    {

        GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);//翻转LED端口电平

        Delay(0x00FF);

        

        wfi();

        

        GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);//翻转LED端口电平

        Delay(0x00FF);

        

    }

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);//清除中断标志 WFE模式下 该句放在while循环里面

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