一.STM32学习(5)-时钟系统框图,RCC相关寄存器配置,系统初始化函数SystemInit()介绍以及系统如何执行的系统初始化函数
参考STM32中文参考手册和STM32开发指南
 

参考上面图片:
 
二.RCC相关寄存器配置


2.1 时钟控制寄存器(RCC_CR)
 
2.2 时钟配置寄存器(RCC_CFGR)
  等等寄存器,具体参考STM32中文参考手册 7.3RCC寄存器
2.3 配置这些寄存器的库函数(stm32f10x_rcc.h)
  用的时候参考STM32手册编写、调用即可
三.介绍系统初始化函数SystemInit()
在执行main()函数之前,系统一般会进行初始化,执行SystemInit()函数,打开相应的时钟晶振,分频选择等等。
下面结合 时钟系统框图和STM32中文参考手册的6.3RCC寄存器的描述讲解系统初始化函数。
 
3.1 首先SystemInit()函数在system_stm32f10x.c文件中。
 

3.2 然后接着执行 SetSysClock()函数
  
然后执行72MHz下面的函数SetSysClockTo72()

SetSysClockTo72()函数解释
   
四. 系统如何执行的系统初始化函数
在写程序时,我们并没有调用系统初始化函数,为何可以执行呢。
原因是在系统启动文件里设置了先执行系统初始化函数,在执行main()函数,如图所示。

|