**有些客户需求,把设备做成低功耗管理,这样就可以节省电池的电量,也可以增加传感器的使用寿命
HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式,等待某个事件触发
  ① 
 睡眠模式:内核停止,外设如 
 NVIC 
 ,系统时钟 
 Systick 
 仍运行。 
 
  ② 
 停止模式:所有时钟都已停止。 
 1.8V 
 内核电源工作。 
 
PLL,HIS和HSE RC振荡器功能禁止。
寄存器和SRAM内容保留。
③待机模式:1.8V内核电源关闭。
只有备份寄存器和待机电路维持供电。
寄存器和SRAM内容全部丢失。实现最低功耗
在运行模式下,可以通过下面方式降低功耗:
① 降低系统时钟。
② 关闭APB和AHB总线上未被使用的外设时钟。





软件代码实现部分:


示例代码
int main(void)
{ 
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  delay_init(168);      //初始化延时函数
  uart_init(115200);		//初始化串口波特率为115200			        
  LCD_Init();           //初始化LCD FSMC接口
  KEY_Init();	 
 POINT_COLOR=RED;	  
 LCD_ShowString(30,40,210,24,24,"WarShip STM32 ^_^"); 
 while(1)
  {
    if(KEY_Scan(0)==KEY0_PRES)
   {
       RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);	//使能PWR外设时钟
       PWR_BackupAccessCmd(ENABLE);//后备区域访问使能
      RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA,DISABLE);//关闭RTC相关中断	       
      RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);//清楚RTC相关中断标志位。
     PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志
     PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能
      PWR_EnterSTANDBYMode();	  //进入待命(STANDBY)模式 	 
   }
    delay_ms(10);
  }
}
实现同一个引脚PA0引脚(WakeUp引脚),长按3秒进入待机模式,在待机模式下,长按3秒待机唤醒。
其他情况具体使用后添加。。。。

















