[21IC首页] [21IC资料下载] [21IC器件搜索[alldatasheet网] [中国芯片手册网] [电子查询网] [磁动力工作室] [驱动程序开发网] [射频网络] [液晶之家] [可控硅应用技术网]

Computer○○的家当®

 
 
载入中...
   
                             设置为首页      [站长入口]    站点2: [EDN站点]   站点3: [与非站点]   站点4: [电子园站点]   我的USB专区: [圈圈的USB专区]

 




载入中...

日志内容


STM32配置时钟时注意设置FLASH等待周期
电脑圈圈 发表于 2008-7-29 14:28:00

    今天是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等待是没问题的。


阅读全文 | 回复(2) | 引用通告 | 编辑       


Re:STM32配置时钟时注意设置FLASH等待周期
computer00发表评论于2008-8-1 1:45:00

computer00哈哈~~~为啥我在广州你就要巨晕呀~~~~
个人主页 | 引用 | 返回 | 删除 | 回复       


我巨昏!00也是广州的
on-raptor(游客)发表评论于2008-7-31 0:29:00

on-raptor(游客)这几天我热到连脑子都不想动了
个人主页 | 引用 | 返回 | 删除 | 回复       

发表评论:
载入中...

 
 

 

用户信息

载入中...

    
    
 
家当信息
载入中...

站长简介:  

    Computer00,男。B型血,天蝎座。爱好电子技术及计算机技术。21IC中国电子网[技术交流]版版主。

 

最新回复

载入中...

圈圈公告 
载入中...

最新家当

载入中...

友情链接 

 

家当主题

载入中...

最新留言

载入中...

搜我的家当 

          chunyang工作室
        为您提供无线通讯模块