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

STM32F103使用RTC闹钟唤醒STOP模式

[复制链接]
zzwnb 提问时间:2018-11-3 18:16 /
1、使用STM32CubeMx新建工程,配置时钟以及RTC闹钟,开启EXIT17线;
2、设置RTC闹钟;
3、调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI)进入STOP模式
4、调用__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);清除标志。



按照以上操作,结果根本进不去STOP模式,求各位大佬帮忙分析一波是什么原因
收藏 评论6 发布时间:2018-11-3 18:16

举报

6个回答
zzwnb 回答时间:2018-11-4 18:27:34
卧槽,,没人理我吗?自顶一波
zzwnb 回答时间:2018-11-5 08:38:43
再顶
埃斯提爱慕 回答时间:2018-11-5 09:14:45
提示: 作者被禁止或删除 内容自动屏蔽
废鱼 回答时间:2018-11-5 09:18:18
楼主,您好。周末的时候,在线的网友较少。这个问题需要先确是否进入了STOP模式。再确定是否是RTC唤醒导致。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

chifen 回答时间:2018-11-5 09:32:53
  /* Disable Wakeup Counter */
    HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);
   
    /* ## Setting the Wake up time ############################################*/
    /*  RTC Wakeup Interrupt Generation:
      Wakeup Time Base = (RTC_WAKEUPCLOCK_RTCCLK_DIV /(LSE or LSI))
      Wakeup Time = Wakeup Time Base * WakeUpCounter
      = (RTC_WAKEUPCLOCK_RTCCLK_DIV /(LSE or LSI)) * WakeUpCounter
        ==> WakeUpCounter = Wakeup Time / Wakeup Time Base
   
      To configure the wake up timer to 20s the WakeUpCounter is set to 0xB4D8 for LSI:
      RTC_WAKEUPCLOCK_RTCCLK_DIV = RTCCLK_Div16 = 16
      Wakeup Time Base = 16 /(~37.000KHz) = ~0,432 ms
      Wakeup Time = ~20s = 0,432ms  * WakeUpCounter
        ==> WakeUpCounter = ~20s/0,432ms = 46296 = 0xB4D8 */
    HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle, 0xB4D8, RTC_WAKEUPCLOCK_RTCCLK_DIV16);
   
    /* Configure the system Power */
    SystemPower_Config();

    /* Enter Stop Mode */
    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
这个是L0的休眠方式  你可以对比一下

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

maxtch 回答时间:2018-11-5 13:54:04
挂着调试器的情况下是不能进 STOP 模式的。
NUCLEO_F091RC_04.jpg

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版