编辑:这个问题是错误的。stm325105 只有一个唤醒引脚。但是其他 ST 部件有不止一个唤醒引脚,所以给定的答案对那些有效。
我有一个 stm32f105,它有两个连接到唤醒输入的瞬时按钮。处理器进入待机模式。当任何一个按钮被按下,或者 RTC 定时器触发时,cpu 就会被唤醒。
问题是我希望 cpu 根据触发的唤醒输入来做不同的事情。根据ST stm32f105xx 参考手册中的5.3.5,除了指示我们已被唤醒(但不是由谁唤醒)的状态寄存器和 42 个备份寄存器外,没有保留任何寄存器。
待机模式允许实现最低功耗。它基于 Cortex ® -M3 深度睡眠模式,并禁用了稳压器。1.8 V 域因此断电。PLL、HSI 振荡器和 HSE 振荡器也被关闭。除了备份域和待机电路中的寄存器外,SRAM 和寄存器内容都将丢失。
从待机模式唤醒后,程序执行以与复位后相同的方式重新启动(引导引脚采样、获取向量复位等)。电源控制/状态寄存器 (PWR_CSR) 中的 SBF 状态标志指示 MCU 处于待机模式。
这个ST论坛帖子,如何确定Wakeup from Standby的来源?,表明我无法检测到软件中触发了哪个唤醒。我发现那里没有其他帖子可以提供更多启发。
唤醒后如何使用软件或硬件来确定触发了哪个唤醒输入?