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

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

[复制链接]
封刀岁月不为峥嵘 提问时间:2023-6-6 22:27 / 未解决

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

进入低功耗部分代码如图

QQ图片20230606222338.jpg

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

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

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

_~N)QL0S8AN$8BR4K`]LID2_tmb.png
收藏 评论2 发布时间:2023-6-6 22:27

举报

2个回答
butterflyspring 回答时间:2023-6-7 10:04:19
这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中断标志还在。所以应注意一下是不是有这样的逻辑冲突。
封刀岁月不为峥嵘 回答时间:2023-6-8 09:03:37

butterflyspring 发表于 2023-6-7 10:04
这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中 ...

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

解决办法是在这个函数后加一定延迟,但是这个处理方法我不太满意

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