你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G0 休眠和唤醒问题

[复制链接]
c401b953 提问时间:2019-1-23 11:10 /
///////////////////////////////////////////////////////////
在Standby模式休眠后,等RTC时间到后会复位一次。但进入STOP1模式时,RTC无法唤醒系统
////////////////////////////////////////////////////////////
void RCT_Init(void) {
    /* Enable RTC APB clock  */
    LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_RTC);
    LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);

    LL_PWR_EnableBkUpAccess();
    /* Enable LSE only if disabled.*/
    if (LL_RCC_LSE_IsReady() == 0) {
        LL_RCC_ForceBackupDomainReset();
        LL_RCC_ReleaseBackupDomainReset();
        LL_RCC_LSE_Enable();

        while (LL_RCC_LSE_IsReady() != 1) {

        }
        LL_RCC_SetRTCClockSource(LL_RCC_RTC_CLKSOURCE_LSE);
    }
    /* Peripheral clock enable */
    LL_RCC_EnableRTC();

    /////////////////////////////////////////////////
    /* ######## ENABLE WUT #################################################*/
    /* Disable RTC registers write protection */
    LL_RTC_DisableWriteProtection(RTC);
    /* Set prescaler according to source clock */
    LL_RTC_SetAsynchPrescaler(RTC, RTC_ASYNCH_PREDIV);
    LL_RTC_SetSynchPrescaler(RTC, RTC_SYNCH_PREDIV);
    /* Disable wake up timer to modify it */
    LL_RTC_WAKEUP_Disable(RTC);
    /* Wait until it is allow to modify wake up reload value */
    while (LL_RTC_IsActiveFlag_WUTW(RTC) != 1) {

    }
    /* Setting the Wakeup time to RTC_WUT_TIME s
         If LL_RTC_WAKEUPCLOCK_CKSPRE is selected, the frequency is 1Hz,
         this allows to get a wakeup time equal to RTC_WUT_TIME s
         if the counter is RTC_WUT_TIME */
    LL_RTC_WAKEUP_SetAutoReload(RTC, 1);
    LL_RTC_WAKEUP_SetClock(RTC, LL_RTC_WAKEUPCLOCK_CKSPRE);
    /* Enable RTC registers write protection */
    LL_RTC_EnableWriteProtection(RTC);
    /* Disable RTC registers write protection */
    LL_RTC_DisableWriteProtection(RTC); //禁用RTC寄存器写入保护
    /* Enable wake up counter and wake up interrupt */
    /* Note: Periodic wakeup interrupt should be enabled to exit the device
       from low-power modes.*/
    LL_RTC_EnableIT_WUT(RTC); //启用唤醒计数器和唤醒中断(没看见这个中断入口函数)
    LL_RTC_WAKEUP_Enable(RTC); //唤醒使能
    /* Enable RTC registers write protection */
    LL_RTC_EnableWriteProtection(RTC);
    /* Reset Internal Wake up flag */
    LL_RTC_ClearFlag_WUT(RTC);
    /* ######## ENTER IN STANDBY MODE ######################################*/

    /////////////////////////////////////////////////

}

void EnterStandbyMode(void) {


    /* Set Standby mode */
    LL_PWR_SetPowerMode(LL_PWR_MODE_STANDBY);

    /* Set SLEEPDEEP bit of Cortex System Control Register */
    LL_LPM_EnableDeepSleep();

    /* This option is used to ensure that store operations are completed */


    /* Request Wait For Interrupt */
    __WFI();
}

void EnterSTOP1Mode(void) {


    /* Set STOP1 mode */
    LL_PWR_SetPowerMode(LL_PWR_MODE_STOP1);

    /* Set SLEEPDEEP bit of Cortex System Control Register */
    LL_LPM_EnableDeepSleep();

    /* This option is used to ensure that store operations are completed */


    /* Request Wait For Interrupt */
    __WFI();
}



收藏 1 评论3 发布时间:2019-1-23 11:10

举报

3个回答
chifen 回答时间:2019-1-23 12:00:10
没有看到你定时多久唤醒
c401b953 回答时间:2019-1-23 14:07:01
    /* Setting the Wakeup time to RTC_WUT_TIME s
          If LL_RTC_WAKEUPCLOCK_CKSPRE is selected, the frequency is 1Hz,
          this allows to get a wakeup time equal to RTC_WUT_TIME s
          if the counter is RTC_WUT_TIME */
     LL_RTC_WAKEUP_SetAutoReload(RTC, 1);
     LL_RTC_WAKEUP_SetClock(RTC, LL_RTC_WAKEUPCLOCK_CKSPRE);
一秒唤醒一次
c401b953 回答时间:2019-1-23 14:07:23
chifen 发表于 2019-1-23 12:00
没有看到你定时多久唤醒

/* Setting the Wakeup time to RTC_WUT_TIME s
           If LL_RTC_WAKEUPCLOCK_CKSPRE is selected, the frequency is 1Hz,
           this allows to get a wakeup time equal to RTC_WUT_TIME s
           if the counter is RTC_WUT_TIME */
      LL_RTC_WAKEUP_SetAutoReload(RTC, 1);
      LL_RTC_WAKEUP_SetClock(RTC, LL_RTC_WAKEUPCLOCK_CKSPRE);
一秒唤醒一次
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版