stm32 系统进入stop模式_STM32进入STOP模式并唤醒实验总结

项目需求,需要实现设备低功耗功能,实现过程中遇到几个问题,以此记录总结。(stm32f103ret6)

问题一:执行PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);后,程序继续执行,看到的现象像是没有进入休眠。

调试步骤:

1.关闭自己的时钟配置,调用启动函数中默认的SystemInit()

2.关闭相关外设初始化,只开启串口一以追踪程序运行流程和一个IO中断以唤醒

现象:能进入终端并且正常唤醒

3.换为调用自己的时钟,休眠不了,一步步打开相关时钟配置没问题直到开启了

SysTick_Config(SystemCoreClock / 1000 )   //1ms定时器

就休眠失败

源码贴图如下:

原因:开始以为把所有的外设中断关闭就没事了,其实系统时钟开了个1Ms的系统定时中断(功能需要)

【解决方式】:

方式一:.注释SysTick_Config(SystemCoreClock / 1000)

方式二:.在进入休眠之前,关闭系统定时器,清空计数值

SysTick->CTRL = 0x00;//关闭定时器

SysTick->VAL = 0x00;//清空val,清空定时器

功能需要不能关闭,选择方式二

【补充说明】:

SysTick系统定时

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值