久芯网

关于定时器按键进出Stop低功耗模式唤醒出现的问题!!!

avatar 封刀岁月不为峥嵘 提问时间: 2023-06-29 22:39:04 / 未解决

先说明一下,我使用的是STM32L431RCT6的芯片,按键使用的是定时器扫描的方式。

进入低功耗部分代码如图

关于定时器按键进出Stop低功耗模式唤醒出现的问题!!! [相关图片]

我通过按键能够正常进入Stop模式,然后由同一按键的外部中断触发唤醒,出现的问题是,

程序重启初始化后,自动又进入了中断,经过Debug调试推测是,再由外部中断唤醒的时候定时器扫描又识别了按键按下,又一次进入了STOP模式,那么问题了来,我明明已经关闭了时钟,关闭了定时器,为什么还能通过定时器扫描识别到我的按键(该截图为尝试改动的截图,我有试过在Stop模式前关闭定时器,但是无效)。。。

顺便问一下,进出停止模式前后的恢复初始化及初始化应该如何配置

2个回答
  • avatar butterflyspring
    回答时间: 2023-06-29 22:56:16

    这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中断标志还在。所以应注意一下是不是有这样的逻辑冲突。

  • avatar 封刀岁月不为峥嵘
    回答时间: 2023-06-29 23:14:45
    butterflyspring 发表于 2023-6-7 10:04
    这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中 ...

    矩阵扫描的逻辑在定时器里面写的,10ms触发一次,现在的问题是,我按键进入stop和唤醒是同一个按键,而重复进入stop模式的原因,我阅读HAL_PWR_EnterSTOPMode函数说明,初步判断为,他说这个函数的唤醒有一定延迟,也就是说,我虽然把定时器扫描关了,但是唤醒的时候又重新初始化了定时器,他又一次识别了进入stop模式的按键。 解决办法是在这个函数后加一定延迟,但是这个处理方法我不太满意

会员中心 微信客服
客服
回到顶部