前提:STM32F10x系列固件库(标准外设库)
前言:
固件库帮我们写好了 ‘时钟系统(/时钟树)的配置函数’ ,该函数也不需要我们去调用,只要正确包含了STM32的启动文件(.s文件)就行。.s启动文件调用执行了时钟配置函数,先于main函数执行(.s启动文件执行完才到main函数执行)。
库的时钟配置函数的默认配置是:HSE为8MHz,系统时钟是72MHz。如果有HSE,就把HSE作为时钟源,没有HSE就把HSI作为时钟源。配置函数中会检测有无HSE。
大多情况下,默认配置的时钟系统就满足我们的使用了,并不需要更改。如果需要更改的话,后面有教程。
本文先讲解固件库是怎么配置时钟系统的,再讲一下,怎么去更改固件库的默认的时钟配置。
注意:STM32F103x的固件库的默认配置是:HSE是8MHz,系统时钟是72MHz。
正文:
一、固件库的时钟配置过程分析:
1、在main之前,执行SystemInit(),完成对系统时钟的配置。
2、SystemInit()函数
3、SetSysClock()函数
4、SetSysClockTo72()函数
5、默认的外部晶振频率
总结以上的时钟配置流程:
库的系统时钟函数先是使能HSI,并把HSI作为时钟源(复位后,HSI自然就是时钟源了);
然后启动HSE,
如果HSE起振成功,那就切换,时钟源由HSI切换为HSE;
如果HSE起振失败,那就啥也不做(上一步已经把HSI设置时钟源了,就算HSE不起振也没事);
二、修改时钟配置
1、需求:我的主板的晶振原来是8MHz的,现在更换为16NHz了,但我还是希望系统时钟保持为原来的72MHz。
(1)、把库中的HSE_VALUE由默认的8M改为16M
(2)、改HSE相关的分频系数
至此,完成时钟配置的修改。
2、需求:我的主板没有外部晶振,我想启动HSI作为时钟源,并把系统时钟配置为72MHz。文章来源:https://www.toymoban.com/news/detail-763165.html
答:啥也不用做,固件库中,系统时钟默认就是72MHz。另外,固件库的时钟配置函数中,第一步就把HSI启动了。随后的一系列复位操作后,HSI就是时钟源了。之后的HSE启动如果成功,才会把HSE设置为时钟源,你的主板没有HSE,HSE自然启动不成功,那就还是保持着HSI作为时钟源。文章来源地址https://www.toymoban.com/news/detail-763165.html
到了这里,关于STM32配置时钟系统流程(固件库/外设标准库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!