[应用相关]

STM32L0低功耗唤醒后的时钟选择

[复制链接]
1125|1
手机看帖
扫描二维码
随时随地手机跟帖
guanjiaer|  楼主 | 2019-7-4 11:43 | 显示全部楼层 |阅读模式
本文介绍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引脚设置为低功耗状态。


使用特权

评论回复
guanjiaer|  楼主 | 2019-7-4 11:44 | 显示全部楼层
关键语句就在于__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时钟的原因了。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

3836

帖子

2

粉丝