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。