[STM32F0] stm32在stop模式下唤醒后主频变慢,如何解决

[复制链接]
5738|6
 楼主| zhang_haojia 发表于 2014-7-31 11:56 | 显示全部楼层 |阅读模式
唤醒后使用PLL,时钟源是HSI,发现有时压根就不工作,刚开始上电后的几秒钟内还算正常,过一会就不工作了,这是什么原因呢?

请大侠们指教
 楼主| zhang_haojia 发表于 2014-7-31 12:05 | 显示全部楼层
芯片是stm32f030,这个片子可能比较新,不过在stm32F1xx系列上的经验也可以借鉴,这两个系列有非常大的相似之处,

大家帮忙分析一下吧,折磨很久了
香水城 发表于 2014-7-31 15:54 | 显示全部楼层
F0的固件库里不是有从STOP模式唤醒的例程啊,去看看有何异同吧。
 楼主| zhang_haojia 发表于 2014-7-31 18:16 | 显示全部楼层
香水城 发表于 2014-7-31 15:54
F0的固件库里不是有从STOP模式唤醒的例程啊,去看看有何异同吧。

就是照着历程写的,我用了一个按键去唤醒,当我按按键时,是直接执行了中断服务程序还是先执行进入stop函数中__WFI后的语句SYSCLKConfig_STOP呢?

谢谢
香水城 发表于 2014-8-1 10:14 | 显示全部楼层
应该是先执行对应的按键ISR,中断返回后再从WFI语句的后一句继续执行。
 楼主| zhang_haojia 发表于 2014-8-1 18:06 | 显示全部楼层
香水城 发表于 2014-8-1 10:14
应该是先执行对应的按键ISR,中断返回后再从WFI语句的后一句继续执行。

谢谢香主!

这个问题已经解决了,方法是不再使用systick实现按键去抖,而是通过while(按键IO低电平){...}来进行去抖检测,中断服务程序也可以正常运行了,时钟稳不稳定我也不太关心,只要能完成任务就行了。
根据我观察到的现象目前可以得到的结论是:从stop模式唤醒后的systick中断时间间隔不是均匀的。
guangods 发表于 2014-8-14 16:35 | 显示全部楼层
你用SYSTICK去抖,那应该MCU不省电
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部