SMT32如何进入sleep模式

网上说STM32 STOP模式和Standby模式的不少,却很少有人说怎么操作Sleep模式,东西不多,加一个函数而已,废话不多,下面就给出添加的函数,各位COPY到自己的项目用就是了!!

/*

*  Brief  :  Enters SLEEP mode.

*/

#define PWR_SLEEPEntry_WFI         ((uint8_t)0x01)
#define PWR_SLEEPEntry_WFE         ((uint8_t)0x02)
#define SysCtrl_SLEEPONEXIT_Set    ((u16)0x0002)
#define SysCtrl_SLEEPDEEP_Set  ((u16)0x0004)
void PWR_EnterSLEEPMode(u32 SysCtrl_Set, u8 PWR_SLEEPEntry)
{
    if (SysCtrl_Set)
         SCB->SCR |= SysCtrl_SLEEPONEXIT_Set;   
    else
        SCB->SCR &= ~SysCtrl_SLEEPONEXIT_Set;
    SCB->SCR &= ~SysCtrl_SLEEPDEEP_Set;   
    if(PWR_SLEEPEntry == PWR_SLEEPEntry_WFI)          
        __WFI();                                       
    else
        __WFE();                                
}
原文地址:https://www.cnblogs.com/qiujiahong/p/2378386.html