1. 程式人生 > >STM32低功耗--停機模式

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。