低功耗等待模式

本文介绍了一种基于STM32的低功耗运行模式实现方法,详细描述了如何通过软件配置将CPU置于低功耗状态,并通过外部中断唤醒。文中提供了具体的代码示例,包括时钟配置、外设关闭、GPIO初始化及WFE指令使用。

1. 该模式在低功耗运行模式的基础上,通过wfe指令进入。指定的事件到达时,从该模式退出,进入低功耗等待模式。cpu停止工作,中断禁止。

2. 本实验无明显现象

    CLK_Config();//切换LSI为主时钟
    
    CLK_HSICmd(DISABLE);//关闭HSI等所有不使用的外设,ADC在此模式下无效;关闭所有中断源
    
    //不使用的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);
   // enableInterrupts();//使能中断  
    WFE_DeInit ();
    WFE_WakeUpSourceEventCmd (WFE_Source_EXTI_EV6,ENABLE);
    
   
    CLK_MainRegulatorCmd(DISABLE);//关闭电压调节器
    
    
    
    while(1)
    {
       /*CLK_MainRegulatorCmd(ENABLE);//关闭电压调节器 
       Delay(0x0fFF);
       EXTI_ClearITPendingBit (EXTI_IT_Pin6);
       GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);
       Delay(0x0fFF);*/
       wfe();
     
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值