/* USER CODE BEGIN Header */ /** *************************************************************************************** * File Name : stm32_lpm_if.c * Description : Low layer function to enter/exit low power modes (stop, sleep). *************************************************************************************** * @attention * *

© Copyright (c) 2019 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "stm32_lpm_if.h" #include "stm32_lpm.h" #include "app_conf.h" /* USER CODE BEGIN include */ /* USER CODE END include */ /* Exported variables --------------------------------------------------------*/ const struct UTIL_LPM_Driver_s UTIL_PowerDriver = { PWR_EnterSleepMode, PWR_ExitSleepMode, PWR_EnterStopMode, PWR_ExitStopMode, PWR_EnterOffMode, PWR_ExitOffMode, }; /* Private function prototypes -----------------------------------------------*/ static void Switch_On_HSI( void ); /* USER CODE BEGIN Private_Function_Prototypes */ /* USER CODE END Private_Function_Prototypes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN Private_Typedef */ /* USER CODE END Private_Typedef */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN Private_Define */ /* USER CODE END Private_Define */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN Private_Macro */ /* USER CODE END Private_Macro */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN Private_Variables */ /* USER CODE END Private_Variables */ /* Functions Definition ------------------------------------------------------*/ /** * @brief Enters Low Power Off Mode * @param none * @retval none */ void PWR_EnterOffMode( void ) { /* USER CODE BEGIN PWR_EnterOffMode */ /* USER CODE END PWR_EnterOffMode */ } /** * @brief Exits Low Power Off Mode * @param none * @retval none */ void PWR_ExitOffMode( void ) { /* USER CODE BEGIN PWR_ExitOffMode */ /* USER CODE END PWR_ExitOffMode */ } /** * @brief Enters Low Power Stop Mode * @note ARM exists the function when waking up * @param none * @retval none */ void PWR_EnterStopMode( void ) { /* USER CODE BEGIN PWR_EnterStopMode */ /* USER CODE END PWR_EnterStopMode */ } /** * @brief Exits Low Power Stop Mode * @note Enable the pll at 32MHz * @param none * @retval none */ void PWR_ExitStopMode( void ) { /* USER CODE BEGIN PWR_ExitStopMode */ /* USER CODE END PWR_ExitStopMode */ } /** * @brief Enters Low Power Sleep Mode * @note ARM exits the function when waking up * @param none * @retval none */ void PWR_EnterSleepMode( void ) { /* USER CODE BEGIN PWR_EnterSleepMode */ /* USER CODE END PWR_EnterSleepMode */ } /** * @brief Exits Low Power Sleep Mode * @note ARM exits the function when waking up * @param none * @retval none */ void PWR_ExitSleepMode( void ) { /* USER CODE BEGIN PWR_ExitSleepMode */ /* USER CODE END PWR_ExitSleepMode */ } /************************************************************* * * LOCAL FUNCTIONS * *************************************************************/ /** * @brief Switch the system clock on HSI * @param none * @retval none */ static void Switch_On_HSI( void ) { LL_RCC_HSI_Enable( ); while(!LL_RCC_HSI_IsReady( )); LL_RCC_SetSysClkSource( LL_RCC_SYS_CLKSOURCE_HSI ); LL_RCC_SetSMPSClockSource(LL_RCC_SMPS_CLKSOURCE_HSI); while (LL_RCC_GetSysClkSource( ) != LL_RCC_SYS_CLKSOURCE_STATUS_HSI); } /* USER CODE BEGIN Private_Functions */ /* USER CODE END Private_Functions */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/