原创 STM32配置时钟时注意设置FLASH等待周期

2008-7-29 00:59 14194 9 8 分类: MCU/ 嵌入式

    今天是2008年7月28日,广州天气热啊,热得叫人受
不了。中午回来啥活都不想干了,还是玩玩手头上的
STM32板吧。
    兴致勃勃地把复位及时钟控制(RCC)的寄存器定义写
完了,没得午觉睡倒算了,还累得满头大汗……看来这
事有点吃力不讨好,真想用别人现成的头文件算了,最后
还是咬咬牙自己写吧,至少可以让自己对寄存器结构熟悉
一些。
    傍晚回来再写个测试程序,满以为一次就OK的,可
是调试时却发现,运行到选择PLL时钟后程序就跑飞……
顿时就傻眼了……检查各个寄存器配置,似乎没什么问题
啊:选择外部8M时钟,不分频输入到PLL,设置PLL为9倍
频(注意实际写入到寄存器中为7),AHB、ABP2不分频,
ABP1为2分频(注意设置为8才是2分频),都没有超过最大
频率啊。看来想要搞个72M的主频遇到麻烦了……试着将倍
频降下来,当主频为48M时,系统可以正常工作了,莫非是
USB模块的时钟没有设置为1.5分频?再检查,没错啊,是
1.5分频的。找不到原因,额头上开始冒出了豆大的汗珠,
还好今天天气热,被掩饰过去了,不然让那些行家看到笑
死...莫非俺的片子是被人打磨过的...
    最后去论坛问了下,斑竹提示说是否忘记了设置FLASH
等待周期?哈哈,好象我的程序是没有这个步骤,因为手册
里没有关于FLASH的寄存器描述,所以把它给忽略了...不过
里面也有提到系统时钟不同时,需要设置不同的等待周期,
24M以下使用0等待,24M~48M使用1等待,48M~72M使用2等
待。找到FALSH的手册,看了下上电复位后的等待设置为0,
晕,72M主频不跑飞才怪了。在配置时钟之前,增加了一句
FLASH_ACR=0x32,将等待周期设置为2,再次运行程序,
流水灯流了起来~~~
    根据圈圈以往的经验,通常像访问存储器的相关寄存
器,复位后都会设置为最坏条件下的值(例如等待周期设置
为最大),然后再由用户自己配置以达到最佳性能。不过,
STM32这个是内部的FLASH,上电复位后系统将自动使用内部
8M时钟做为系统时钟,因而设置为0等待是没问题的。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户428771 2012-12-21 13:02

请问一下,为什么在参考手册上找不到arc这个flash的寄存器呢?flash手册是个什么东东?感谢解答了

用户726669 2008-3-11 13:18

好搞笑倻!!

用户123002 2008-3-6 15:31

我撒! 要求这么高,我也是湖南的 你咋就不考虑一下呢

用户380180 2008-3-4 23:43

这年头女人的要求太苛刻了,让她们去等吧,等到花黄了她们就认输了,哈哈
相关推荐阅读
computer00 2013-06-05 16:27
[招聘]Android系统开发工程师
任职要求: 1. 扎实的C/C++基础,熟悉嵌入式Linux和Android操作系统的软件开发; 2. 良好的沟通能力和逻辑思维能力; 3. 良好的英文文献阅读能力; 4. 具备...
computer00 2013-06-04 09:26
[招聘]Android应用开发工程师
任职要求: 1. 具备扎实的面向对象编程思想和JAVA编程基础; 2. 熟悉Eclipse+ADT开发环境,熟练掌握Android基本类库; 3. 熟悉网络应用和多媒体应用开发; ...
computer00 2012-09-26 13:15
圈圈的新浪官方围脖
http://weibo.com/computer00  ...
computer00 2012-09-26 13:12
欢迎大家去收听圈圈弹的曲子
http://www.tudou.com/home/_105209016  ...
computer00 2009-06-29 15:07
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:下载地址2: 勘误.pdf...
computer00 2009-06-25 11:23
一块磐正845GE主板PS2接口的修复
圈圈有一部台式机,某天开机时,发现键盘用不了了,停留在输入BIOS密码那里。主机自检通过,但是蜂鸣器却发出很微弱的、连续的声音,同时键盘的三个LED也没有出现象往常一样的闪烁一下。圈圈以为多日未用,积...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /1 下一条