Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

PS:仅列出常用或默认的操作,对标野火的STM32F103教学视频整理出的笔记

时钟树

0x00 时钟的配置过程总结

HSE配置系统时钟->不分频进入锁相环时钟源->倍频因子为9->PLLCLK为72M->给系统时钟->三条总线(AHB 1分频->APB1 二分频,APB2配置一分频)->外设在使用时配置倍频因子

0x01 HSE时钟 (High Speed External Clock signal) 高速外部时钟(4M~16M)一般用8M晶振

特性:计时精准

寄存器:RCC_CR

开启方式:把16位HSEON 置1

就绪位:启振需要一定时间,当第17位HSEREDY为1时,HSE准备好,对应位17

0x02 HSI (High Speed Internal Clock signal)——高速内部时钟(8M)

特性:精度小、受温度影响大,当HSE故障时就用的这个,直到HSE启动成功

寄存器:RCC_CR

开启方式:把0位HSION置1

就绪位:第一位HSIRDY为1,HSI准备好

0x03 锁相环时钟PLLCLK

寄存器:RCC_CFGR

几个常用的位

17位PLLXTPRE 16位PLLSRC PLLMUL
分频用的 设置时钟源是HSE还是HSI 倍频因子,最大16

PLLXTPRE

PLLXTPRE是分频用的

  • (常用)0不分频
  • 1为2分频

LLSRC

  • 0为HSI/2 作为PLL输入时钟
  • 1为HSE作为输入时钟(常用)

PLLMUL 倍频因子,最大为16

  • 可以选择倍频
    • 在这里配置倍频因子为9,将HSE配置到72MHz(8*9=72)
    • 如果HSE故障了,HSI的8M直接作为系统时钟

0x04 系统时钟SYSCLK

  • 来源 HSI HSE PLLCLK,最大72HMz,一般配置系统时钟等于PLLCLK
    • 通过系统时钟切换位(CFGR寄存器) 配置成10为PLL输出作为系统时钟(常用)
    • 切换需要时间,SWS位是10说明时钟切换完毕

0x05 AHB预分频器

寄存器:RCC_CFGR HPRE[3:0],常配置为1,意为不分频

  • APB1预分频器
    • 最高36Mhz,常配置分频因子为2
  • APB2预分频器(高速总线)
    • 最高72Mhz,常配置分频因子配置1

0x06 CSS时钟安全系统

概述:当HSE故障时,产生CSSI中断

使用过程:

中断时配置HSI为系统时钟,先经过二分频,然后经过PLLSRC,倍频因子选择16,配置系统频率为64M

64M下,某些外设可以正常运作,但最保险的情况就是通知用户/保存数据

默认状态:

当CSSI中断没有被配置的时候,HSI的8M默认作为系统时钟

评论