先说明一下,我使用的是STM32L431RCT6的芯片,按键使用的是定时器扫描的方式。 进入低功耗部分代码如图 我通过按键能够正常进入Stop模式,然后由同一按键的外部中断触发唤醒,出现的问题是, 程序重启初始化后,自动又进入了中断,经过Debug调试推测是,再由外部中断唤醒的时候定时器扫描又识别了按键按下,又一次进入了STOP模式,那么问题了来,我明明已经关闭了时钟,关闭了定时器,为什么还能通过定时器扫描识别到我的按键(该截图为尝试改动的截图,我有试过在Stop模式前关闭定时器,但是无效)。。。 顺便问一下,进出停止模式前后的恢复初始化及初始化应该如何配置 |
这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中断标志还在。所以应注意一下是不是有这样的逻辑冲突。
这里好像没有按键扫描处理的逻辑。 假定按键按下,如果中断一直还在,这时是不会进入低功耗模式的,因为中 ...
矩阵扫描的逻辑在定时器里面写的,10ms触发一次,现在的问题是,我按键进入stop和唤醒是同一个按键,而重复进入stop模式的原因,我阅读HAL_PWR_EnterSTOPMode函数说明,初步判断为,他说这个函数的唤醒有一定延迟,也就是说,我虽然把定时器扫描关了,但是唤醒的时候又重新初始化了定时器,他又一次识别了进入stop模式的按键。 解决办法是在这个函数后加一定延迟,但是这个处理方法我不太满意