stm32专题五:时钟树(一)寄存器

详细介绍stm32系统时钟配置:

     

 1 时钟来源:外部高速晶振HSE和内部RC振荡器HSI。通过RCC_CR(时钟控制寄存器来配置)。

       HSEON为1时,打开外部时钟;当位HSERDY为1时,表示HSE已经准备就绪。同理,HSION和HSIRDY配置内部时钟。当HSE故障时,系统时钟自动切到HSI,直到HSE启动成功。注意:由于HSI不太精确,系统启动时会自动校准,HSICAL[7:0]这些位被自动初始化,HSITRIM[4:0]用于内部时钟HSI的调整,由软件写入,这些位会叠加到HSICAL[5:0]的数值上。

       问题:具体怎么调整?HSITRIM[4:0]的默认初始值为16,即10000。中文参考手册中说到,可以把HSI调整到8MHz±1%;每步HSICAL的变化调整约40kHz。我的理解是,当我+1时,此时HSITRIM[4:0]为10001,HSI应该会从8MHz+40kHz = 8.04MHz,也可能时8MHz-40kHz = 7.96MHz。当需要调整时,可以根据默认值10000和步长来计算需要写入的数值。

       2 锁相环PLL时钟源:

       PLLSRC有两个来源:HSI 分频(4M RC时钟),或来自HSE(其中通过配置)RCC_CFGR的位17 PLLXTPRE来设置不分频(8MHz)或2分频(4MHz)。

      3 系统时钟SYSCLK来源:

      来源一:HSI。来源二:锁相环输出时钟PLLCLK(又有两个来源,一个是HSI 2分频时钟经过PLLMUL倍频,由于HSI/2=4M,而倍频因子PLLMUL最大为16,因此使用HSI时钟时最大为64M;另一个来源是HSE时钟,此时系统推荐为9倍频,但为了好玩,可以设置为16倍频,超频到128M,倍频因子由RCC_CFGR(时钟控制寄存器)的PLLMUL[3:0]位来设置);来源三,HSE。选择哪个来源由SW[1:0]来配置。

      4 AHB总线时钟:

      需要注意的是,整个圈起来的红色区域都是AHB总线,在上面挂载了很多的设备。在AHB总线的基础上,还有两个预分频器APB1和APB2(2 > 1,所以APB2是高速总线),这两条总线上挂载了很多的外设。这三条总线的分频因子由RCC_CFGR的PPRE2[2:0] 、PPRE1[2:0]、HPRE[3:0]这三个位段来配置。注意,系统时钟systick经过8分频,所以为9MHz。PLCK1为APB1总线时钟,为36MHz。APB2总线给ADC提供时钟,而ADCCLK最大为14M,则分频因子通常配置为6分频,16M。

      5 RTC时钟:

      RTC实时时钟有三个来源:HSE/128分频,LSE(外部低速时钟32.768kHz晶振),LSI(通常取值40kHz,通常在30~60kHz之间偏移)。

      6 独立看门狗时钟:

      由内部LSI提供。

      7 MCO时钟输出:

      由PA8引脚复用所得,有四个来源,可以作为系统时钟测量。四个来源分别为:PLLCLK/2、HSE、HSI、SYSCLK。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值