STM32低功耗--停机模式


根据项目需要选择的是停机模式


进入停止模式之后,任何外部中断都可以唤醒低功耗,但是需要重新配置时钟,不然系统将以默认时钟(没有经过倍频)运行。



1.进入低功耗

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);                    

PWR_EnterSTOPMode (PWR_Regulator_ON,PWR_STOPEntry_WFI);


2.降低低功耗,需要配置没有使用的GPIO,改变它的默认配置状态。演示状态是关闭所有IO外设,具体情况,可以自行配置

  GPIO_InitTypeDef  GPIO_InitStructure;
       RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Pe    riph_GPIOD|RCC_AHB1Periph_GPIOH, ENABLE);//
    
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_All;    
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
      
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);

  GPIO_Init(GPIOD, &GPIO_InitStructure);

3.检查有没有配置ADC等其他的外设,一定要关闭ADC等其他的外设时钟。


4.如何进行唤醒操作?

在中断处理函数中,进行下系统初始化就可以了。

SystemInit();

如果不进行系统初始化,则以默认时钟进行运行。


5.经过测试MCU消耗400ma。



发布了64 篇原创文章 · 获赞 63 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq84395064/article/details/80533835
今日推荐