STM32低功耗STOP模式问题
我在用 STM32F100 进行 STOP模式 低功耗试验,将程序通过仿真下载到芯片后, 重新上电
程序通过 Systick 计时,10秒钟后进入 STOP 模式, 此时我看到系统电流下降, 是低功耗的作用
然后通过设置了中断的按键唤醒, 系统功耗恢复
我再通过 Systick 计时,程序能执行到进入 STOP 模式的函数, 但是再也进不了 STOP 模式了
请问这是怎么回事?
是不是我在按键唤醒之后, 有什么标志位没有清除?
请大家指教,我实在找不着资料了,谢谢大家!
Note: To enter Stop mode, all EXTI Line pending bits (in Pending register
(EXTI_PR)) and RTC Alarm flag must be reset. Otherwise, the Stop mode
entry procedure is ignored and program execution continues.
在 STM32F100手册 里面找到这样一段话,是不是进入停止模式之前,要先复位所有的外部中断挂起位 和 RTC报警标志位, 否则的话程序不会进入睡眠模式 ?
请知道的老师帮忙指导,谢谢啦
搞定了,
void LowCost_StopMode(void)
{
EXTI_ClearITPendingBit(EXTI_Line8 | EXTI_Line9 | EXTI_Line10 | EXTI_Line11 | EXTI_Line12); // 清楚 EXIT 的挂起位
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); // Mode: STOP + Regulator in low power mode + Entry with WFI
}
进入停止模式之前要清除外部中断的挂起位。
有个问题,你的SysTick中断不会唤醒睡眠吗?我好象遇到这个问题,睡眠后还没到RTC唤醒时间,但SysTick中断就会唤醒CPU很烦人。有好的解决办法吗?
小编你好,STOP模式一直进不去,请指教