STM32开发笔记74: STM32L0低功耗唤醒后的时钟选择

单片机型号:STM32L053R8T6


本文介绍STM32L0系列单片机低功耗唤醒后的时钟选择。

参看已有的低功耗例程,发现都使能了HSI时钟,一致没有深究其中的具体原因,今天把它搞明白了,现记录如下:

先看一下,使能低功耗的函数:

void CTarget::EnableLowPower(void)
{
	HAL_PWREx_EnableUltraLowPower();
	HAL_PWREx_EnableFastWakeUp();
	__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);
	DisableAllIO();
}

第1句使能超低功耗,第2句使能快速唤醒,第3句选择唤醒后的主始终,第4句将所有IO引脚设置为低功耗状态。

关键语句就在于__HAL_RCC_WAKEUPSTOP_CLK_CONFIG,以下是该宏的原型:

/**
  * @brief  Macro to configures the wake up from stop clock.
  * @param  __RCC_STOPWUCLK__ specifies the clock source used after wake up from stop
  *   This parameter can be one of the following values:
  *     @arg @ref RCC_STOP_WAKEUPCLOCK_MSI    MSI selected as system clock source
  *     @arg @ref RCC_STOP_WAKEUPCLOCK_HSI    HSI selected as system clock source
  * @retval None
  */
#define __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(__RCC_STOPWUCLK__) (MODIFY_REG(RCC->CFGR,\
        RCC_CFGR_STOPWUCK, (uint32_t)(__RCC_STOPWUCLK__) ))

在这里说的已经很清楚,唤醒后的主时钟智能选择MSI或HSI,这也就是为什么低功耗程序都是能HSI时钟的原因了。

 

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

 

你可能感兴趣的:(#,STM32快速开发,STM32快速开发)