单片机
返回首页

STM32F103的时钟配置源码学习记录

2021-01-04 来源:eefocus

     本文记录下看完正点原子战舰版的时钟配置视频后的理解,仅用作备忘。

      时钟的配置源码在文件system_stm32f10x.c中。程序先通过判断使用的f10芯片的种类,选择你要的系统时钟频率SYSCLK。我用的芯片系统频率最高为72Mhz,芯片容量为大容量型,所以预编译后选择的是SYSCLK_FREQ_72MHz  72000000。 

      

    下面这段代码在时钟配置中没什么用,只是在以后的程序中可以通过SystemCoreClock来读出系统时钟的频率。

     

    下面代码通过宏定义来选择配置系统时钟的函数,上边函数定义了SYSCLK_FREQ_72MHz,所以程序执行void SetSysClockTo72(void)。跳转到这个函数

       

       下面这段函数不重要,直接跳过

       

       这三行代码首先是讲AHB总线时钟等于系统时钟,再将APB2上时钟等于HCLK的一分频,APB1时钟等于HCLK的二分频。结果即为HCLK=72MHz,PCLK2=72MHz,PCLK1=36MHz.。刚好为各自总线上允许的最高频率。

       

       再看下图,跳过它上面的代码。else下的代码是通过配置寄存器设置锁相环,从锁相环出来的频率为9倍的频外部高速时钟。

      

       最后使能锁相环PLL,等PLL准备好后,将PLL作为系统时钟的来源。

      

        看懂时钟配置源代码,首先要弄懂时钟系统框图,两个时钟图差不多,但标注有点区别

       

        

 


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章