STM32配置时钟系统流程(固件库/外设标准库)

这篇具有很好参考价值的文章主要介绍了STM32配置时钟系统流程(固件库/外设标准库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:STM32F10x系列固件库(标准外设库)


前言:

       固件库帮我们写好了 ‘时钟系统(/时钟树)的配置函数’ ,该函数也不需要我们去调用,只要正确包含了STM32的启动文件(.s文件)就行。.s启动文件调用执行了时钟配置函数,先于main函数执行(.s启动文件执行完才到main函数执行)。

       库的时钟配置函数的默认配置是:HSE为8MHz,系统时钟是72MHz。如果有HSE,就把HSE作为时钟源,没有HSE就把HSI作为时钟源。配置函数中会检测有无HSE。

       大多情况下,默认配置的时钟系统就满足我们的使用了,并不需要更改。如果需要更改的话,后面有教程。

       本文先讲解固件库是怎么配置时钟系统的,再讲一下,怎么去更改固件库的默认的时钟配置。

注意:STM32F103x的固件库的默认配置是:HSE是8MHz,系统时钟是72MHz。

正文:

一、固件库的时钟配置过程分析:

1、在main之前,执行SystemInit(),完成对系统时钟的配置。

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

2、SystemInit()函数

 配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

 配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

 3、SetSysClock()函数

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

 配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

 

4、SetSysClockTo72()函数

 配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件 

5、默认的外部晶振频率

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

总结以上的时钟配置流程: 

库的系统时钟函数先是使能HSI,并把HSI作为时钟源(复位后,HSI自然就是时钟源了);

然后启动HSE,

     如果HSE起振成功,那就切换,时钟源由HSI切换为HSE;

     如果HSE起振失败,那就啥也不做(上一步已经把HSI设置时钟源了,就算HSE不起振也没事);

二、修改时钟配置

1、需求:我的主板的晶振原来是8MHz的,现在更换为16NHz了,但我还是希望系统时钟保持为原来的72MHz。

(1)、把库中的HSE_VALUE由默认的8M改为16M

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

(2)、改HSE相关的分频系数

配置系统时钟编程步骤主要有哪几点,stm32,单片机,嵌入式硬件

至此,完成时钟配置的修改。 

 

2、需求:我的主板没有外部晶振,我想启动HSI作为时钟源,并把系统时钟配置为72MHz。

答:啥也不用做,固件库中,系统时钟默认就是72MHz。另外,固件库的时钟配置函数中,第一步就把HSI启动了。随后的一系列复位操作后,HSI就是时钟源了。之后的HSE启动如果成功,才会把HSE设置为时钟源,你的主板没有HSE,HSE自然启动不成功,那就还是保持着HSI作为时钟源。文章来源地址https://www.toymoban.com/news/detail-763165.html

到了这里,关于STM32配置时钟系统流程(固件库/外设标准库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32系统时钟的配置方法——内部高速时钟HSI作为系统时钟源

    本文将配置为STM32F103C8T6使用内部高速时钟(HSI)和相位锁定环(PLL),以使系统时钟(SYSCLK)达到48MHz为例进行讲述。 STM32的时钟系统非常灵活,可以根据应用需求进行精细的配置。它包括多种时钟源,如内部高速时钟(HSI)、外部高速时钟(HSE)、内部低速时钟(LSI)、外

    2024年04月24日
    浏览(29)
  • STM32F103标准外设库—— 新建工程与库函数(四)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月19日
    浏览(33)
  • 【STM32 MCU】使用标准外设库(SPL)移植 u8g2 图形库

    MCU STM32F103C8T6 Module 0.96 inch OLED with SSD1306 Library Standard peripheral library Porting to new MCU platform · olikraus/u8g2 Wiki (github.com) 为了减小编译后的大小,我们需要删除或精简以下的文件 U8g2 的源码为了支持多种控制器(controller),包含了许多兼容性的代码。首先,类似 u8x8_d_xxx.c 命名的

    2024年04月10日
    浏览(30)
  • 001 - STM32固件库编程

    一、新建工程文件夹 1、工程文件夹内添加:Project、Libraries、User、Doc,之后在Project目录内新建工程,并将标准库中CMSIS、STM32F4xx_StdPeriph_Driver复制到Libraries中。 2、将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0ProjectSTM32F4xx_StdPeriph_Templates中: main.c stm32f4xx_conf.h stm32f4xx_it.c stm32f4xx_it.h文件复制

    2024年02月05日
    浏览(22)
  • stm32标准库和HAL库的对比学习4.《学习时钟源,时钟树与内部时钟和外部时钟的用法》

            本人是大一的学生,学习了一段时间的stm32,此系列博客为个人的学习笔记,方便个人复习,如有错误或问题,非常非常欢迎大家来大力指正。         简单用文字说一下原理。         如果先要清楚了解建议去b站看一下keysking大佬的教程,很有趣易懂(本

    2024年02月21日
    浏览(33)
  • STM32固件库编程-----点亮led小灯

    第一步:打开keil5,创建工程文件 第二步:选择自己想要的路径(温馨提示,最好不要创建在C盘里面)然后点击保存 第三步:因为我们是使用STM32单片机所以选择Software Packs 因为我们使用的是stm32F1系列的芯片所以要选择如下 STM32F1系列有多种芯片,所以我们可以根据自己手上

    2024年02月06日
    浏览(33)
  • STM32外设之TIM定时器使用及输出比较模式PWM生成,PWM频率和占空比计算,文末有固件库TIM驱动文件的函数讲解

    过来人的经验分享: TIM定时器在我们学习STM32的过程中是一个重要且稍微有点难度的外设了,就拿从学校里做的项目来说用到的也是一些基本的外设配置和传感器等等。TIM作为外设中稍微有点难度的外设相当关键,学好TIM,对以后学习单片机开发也有很大帮助。 定时器是stm3

    2024年02月07日
    浏览(34)
  • 匿名上位机V7.12协议编程(基于STM32F407+CubeMX+UART外设通信)

    本篇以STM32F407VET6主控为基础进行论述。 文章的目的在于记录和引导, 传递一些编写通信类功能会用到的基本思想 ,以及组合这些功能的思想。 匿名上位机V7版本的功能在本篇没有全部写出来,而是针对本上位机常用的功能举例来描述。 相信读者通过仔细阅读笔者的思想引

    2023年04月14日
    浏览(49)
  • STM32F103基于标准库+I2C SSD1306仿数码管RTC时钟显示

    ✨申明:本文章仅发表在CSDN网站,任何其他网站,未注明来源,见此内容均为盗链和爬取。 🍁对于文中所提供的相关资源链接将作不定期更换。 📺显示效果: 🌿工程基于正点原子标准库3.5版本RTC例程作为模板。 🌿使用IIC SSD1306 OLED 双色屏幕软件IIC驱动显示。 ⛳时钟说明

    2023年04月22日
    浏览(35)
  • 【STM32时钟配置】

    使用内部高速时钟时,工作频率最大为64Mhz,且不稳定,因此需要外接时钟源一般8MHZ。8MHZ经过PLL后SYSCLK为72Mhz;APB1预分频后为36MHZ,APB2预分频后为72MHZ,定时器1~8时钟频率为72MHZ,ADC经过6分频后为12MHZ 比F1系列多一个PLL;最大频率为168MHZ;APB1预分频为42MHZ;APB2预分频为84MHZ;

    2024年02月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包