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