STM32学习笔记(一)----系统时钟

 

STM32学习笔记(一)----系统时钟
2009-09-18 01:40

拿到DX32板后,我依照学习8位单片机的经验,准备先把STM32的相关寄存器配置搞清楚

下。可是当我打开STM32的DS后,才发现它的寄存器比8位机不知多了多少倍,估计有几十

上百个吧。。。这得记得猴年马月啊?幸好,ST公司每款MCU都有相对应的库函数。嗯,对

于我这种还没入门的人来说,有库函数那简直就是鸟枪换大炮啊。。当然是在不求甚解的情况

下。。。呵呵。

-----------------------------------------------------------------------------------------------------------------------------------

以下为本人参考STM32官方库(3.0版)及DATASHEET的理解,如有错误,还请不吝指点,谢谢!

-----------------------------------------------------------------------------------------------------------------------------------

        STM32的系统时钟来源可分为三个:HSI(高速内部时钟)、HSE(高速外部时钟)、PLL

(经PLL倍频后的时钟信号)。  

        在设置系统时钟时,要先重置下RCC->CR 及 RCC->CFGR 寄存器,具体可参照STM32

的官方库,里面每个步骤都有详细说明的。下面大概地说一下关于系统时钟选择的设置:

        1)以HSI作为系统时钟来源:            RCC->CFGR   [1:0] SW=00

-----------------------------------------------------------------------------------------------------------------------------------

        2))以HSE作为系统时钟来源:         RCC->CFGR   [1:0] SW=01

-----------------------------------------------------------------------------------------------------------------------------------

        3)以PLL作为系统时钟来源:        (分三种时钟信号输入)

        A、以HSI 2分频作为PLL时钟输入: RCC->CFGR   [1:0] SW=10

                                                                         RCC->CFGR   [16] PLLSRC=0

-----------------------------------------------------------------------------------------------------------------------------------

       B、以HSE 全速作为PLL时钟输入:    RCC->CFGR   [1:0] SW=10

                                                                          RCC->CFGR   [16] PLLSRC=1

                                                                          RCC->CFGR   [17] PLLXTPRE=0

-----------------------------------------------------------------------------------------------------------------------------------

       C、以HSE 全速作为PLL时钟输入:   RCC->CFGR   [1:0] SW=10

                                                                          RCC->CFGR   [16] PLLSRC=1

                                                                          RCC->CFGR   [17] PLLXTPRE=1

        经过以上设置,基本上是设置完了系统时钟的来源,如果设置了是以PLL为系统时钟来

源,则要再通过 RCC->CFGR[21:18] PLLMUL 来选择PLL的倍频系数。设置好之后,就是

ENABLE PLL了:RCC->CR[24] PLLON,至此,系统时钟来源就设置并启动好了,通过读取

RCC->CFGR[3:2]来确认时钟来源是否已生效。(这一步最好在程序中要加上,以免出现系统

时钟未生效而不能正常启动的问题)

        系统时钟启动完后,就可以来设置STM32内设(比如:APB1/APB2/ADC/TIM1……)

RCC->CFGR的总线频率了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值