NUCLEO-L053R8:低功耗STOP模式,外部中断唤醒(例程分享)
基于ST官方NUCLEO-L053R8开发板 代码下载见附件 Stop mode without RTC:0.4uA VDD=3.0V
int main(void)
{
/* STM32L0xx HAL library initialization:
- Configure the Flash prefetch, Flash preread and Buffer caches
- Systick timer is configured by default as source of time base, but user
can eventually implement his proper time base source (a general purpose
timer for example or other time source), keeping in mind that Time base
duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
handled in milliseconds basis.
- Low Level Initialization
*/
HAL_Init();
/* Configure LED2 */
BSP_LED_Init(LED2);
/* Configure the system clock @ 32 Mhz */
SystemClock_Config();
/* Configure the system Power */
SystemPower_Config();
while (1)
{
/* Insert 5 second delay */
BSP_LED_Init(LED2); //LED初始化
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); //点亮LED,延时3S,再灭LED
HAL_Delay(3000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(3000);
SystemPower_Config(); //关闭所有IO和时钟
/* Key button (EXTI_Line13) will be used to wakeup the system from STOP mode */
BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_EXTI);
/* Enter Stop Mode */
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
/* Configures system clock after wake-up from STOP: enable HSE, PLL and select
PLL as system clock source (HSE and PLL are disabled in STOP mode) */
SystemClockConfig_STOP();
}
}
|