onev 发表于 2018-8-6 17:00:03

STM32的待机唤醒BUG?

本帖最后由 onev 于 2018-8-9 15:23 编辑

STM32待机模式,待机使用唤醒引脚PA0和RTC唤醒,两者都能正常的工作。遇到的问题是:给唤醒引脚PA0持续的高电平,当待机后使PA0高电平的维持时间超过RTC设置的唤醒时间时,芯片死掉,除非按下复位按键。暂时只测试STM32F0、STM32F4这两类型号的待机唤醒,HAL库。

wwwheihei 发表于 2018-8-6 17:36:46

应该不会吧?

jakecumt 发表于 2018-8-6 17:48:36

超过RTC时间以后是不是RTC也进入唤醒程序,而PA这时已经运行唤醒程序,导值程序指针跑非?简单的方法你在程序唤醒之间做一个互斥,PA唤醒时禁止RTC唤醒,反之亦然

onev 发表于 2018-8-6 19:41:18

jakecumt 发表于 2018-8-6 17:48
超过RTC时间以后是不是RTC也进入唤醒程序,而PA这时已经运行唤醒程序,导值程序指针跑非?简单的方法你在程 ...

问题不在这里,或许是我没描述清楚。简单来说就是,按住唤醒按键不放,直至系统待机依然不放手,一直到超过RTC唤醒时间再放手,会出现这个问题。单按或者说点按或者说按住的时间不超过RTC唤醒时间,都是没有问题的。

feixiang20 发表于 2018-8-6 23:59:52

按住唤醒按键不放,直至系统待机依然不放手,超过限时导致的么

onev 发表于 2018-8-7 15:25:11

feixiang20 发表于 2018-8-6 23:59
按住唤醒按键不放,直至系统待机依然不放手,超过限时导致的么

对   按住不放手直至RTC唤醒时间超时

发表于 2018-8-7 16:41:20

从理论上分析应该不会出这样的问题,除非楼主的代码中有对该IO口的判断操作,看似进入休眠,其实还未进入休眠。从功耗上分析一下,是否进入了休眠。我有一个板子也是PA0拉低或者拉高的情况,RTC正常唤醒。用的是L151系列。

onev 发表于 2018-8-7 16:46:00

本帖最后由 onev 于 2018-8-7 16:47 编辑

安 发表于 2018-8-7 16:41
从理论上分析应该不会出这样的问题,除非楼主的代码中有对该IO口的判断操作,看似进入休眠,其实还未进入休 ...
是否可以做一下这个实验呢?待机唤醒采用wakeup pin 和 RTC唤醒。你的代码是现成的,可以设置20s进入待机模式,RTC每10秒唤醒一次。这样很快就测试出来了。

发表于 2018-8-7 16:51:01

我用的PA0外部连接的是按键,但是我用的是STOP模式。按键是常开或者常闭的情况,内部RTC唤醒。到现在没出现过问题。如楼上的改法,我肯能需要一段时间,需要闲下来的时候去做一下。

onev 发表于 2018-8-7 16:56:18

本帖最后由 onev 于 2018-8-7 16:59 编辑

安 发表于 2018-8-7 16:51
我用的PA0外部连接的是按键,但是我用的是STOP模式。按键是常开或者常闭的情况,内部RTC唤醒。到现在没出现 ...
好吧
我只是比较着急
这玩意儿卡了我两天了
但其实改起来也很简单,使用HAL_Delay(20000)来延时20s,使用HAL_RTCEx_SetWakeUpTimer_IT来设置RTC唤醒时间。
页: [1] 2
查看完整版本: STM32的待机唤醒BUG?