微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32低功耗STOP模式问题

STM32低功耗STOP模式问题

时间:10-02 整理:3721RD 点击:
请教各位大侠:
       我在用 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模式一直进不去,请指教

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top