配置STM32时钟时应注意设置FLASH等待周期
作者:相逢萍水 日期:2010-03-12
昨天去杭电一趟了,然后带回来一套J-LINK。这下我可以动手写程序进行仿真了,HOHO~~~
万事开头难啊,写了一个小程序,只是点亮一个LED灯,程序很简单,可就是出了问题,程序会跑飞,仔细检查各个寄存器配置,似乎都没有什么问题,选择外部8M时钟,不分频输入到PLL,设置PLL为9倍频72M,AHB,ABP2不分频,ABP1为2分频,这些都挺下常的,可DEBUG时,运行到选择PLL时钟后程序就跑飞,在程序上改来改去,始终没能解决,后来降低了PLL的频率到48M,程序竟然没有跑飞,这就怪了,百思不得其解啊,郁闷了半天 :-( ,
自己实在没辙,于是上网找找解决方法。在一网站有人提示是否忘记了设置FLASH等待周期?回头一看程序,嘿嘿,我的程序里果然没有这方面的设置,看资料上写的是:
0等待周期,当 0 < SYSCLK < 24MHz
1等待周期,当 24MHz < SYSCLK ≤ 48MHz
2等待周期,当 48MHz < SYSCLK ≤ 72MHz
而上电复位后的等待设置为0,所以这里就有问题了!
知道了问题所在,那解决起来就很简单了。在配置时钟之前,我们打开FLASH预取缓冲区,并且设置等待周期为2。再次编译运行程序,我那小可爱---LED终于这起来了:-)
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: