STM32F103学习笔记四 时钟系统

本文深入介绍了STM32F103的时钟系统,包括时钟的理解、分类及STM32时钟的详细结构。通过程序设置时钟参数流程,展示了如何利用HSE时钟初始化系统时钟,达到72MHz的工作频率。同时,讨论了RCC寄存器的配置和系统时钟初始化函数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32F103学习笔记四 时钟系统

本文简述了自己学习时钟系统的一些框架,参照风水月

1. 单片机中时钟系统的理解

1.1 概述
  • 时钟是单片机的脉搏,是单片机的驱动源
  • 用任何一个外设都必须打开相应的时钟
  • 不使用一个外设的时候,把它的时钟关掉,从而可以降低系统的功耗,达到低功耗的效果
  • 每个时钟打开,系统都会处理一步数据,这样才能让工作不出现紊乱
1.2 分类

时钟发生器用于产生时钟,并提供给CPU和外部硬件设备。
有如下三种系统时钟:

(1)主系统时钟
①通过连接一个振荡器到X1和X2,该振荡电路产生fx=1到20MHZ的时钟;
②使用内部高速振荡器产生fRH=8MHZ的时钟。
(2)副系统时钟
①通过在XT1和XT2之间连接一个fXT=32.768KHZ的振荡器;
②通过XT2引脚提供一个外部副系统时钟fexclks=32.768KHZ。
(3)内部低速振荡时钟(看门狗定时器时钟)
①内部低速振荡器,以fRL=240KHZ的时钟振荡。该时钟不能作为CPU时钟。

2. STM32时钟介绍

2.1、STM32里的时钟分类
  1. HSI是高速内部时钟,RC振荡器,频率为8MHz
  2. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz
  3. LSI是低速内部时钟,RC振荡器,频率为40kHz。(WDG看门狗 使用该时钟源)
  4. LSE是低速外部时钟,接频率为32.768kHz的石英晶体。(RTC实时时钟 使用该时钟源)
  5. PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz
    其中HSE和LSE是通过单片机外部的晶振输入的,一共四个管脚,HSE的输入管脚是OSC_IN和OSC_OUT(通常为8M),
    LSE的输入管脚对应的引脚为OSC32_IN和OSC32_OUT(32.768kHz)
2.2、STM32的时钟系统框图

*- SYSCLK(系统时钟)

  • AHB总线时钟
  • APB1总线时钟(低速),速度最高到36MHz
  • APB2总线时钟(高速),速度最高到72MHz
  • PLL时钟*

(1)梯形表示SYSCLK系统时钟的来源可以使HSI RC、PLLCLK、HSE Osc(即HSI振荡器时钟、HSE振荡器时钟、PLL时钟)

(2)绿色方框 表示 预分频器(prescaler)

按照上图深红色 的路线来解释:PLL的时钟源 经过前面的选择器 假设为8MHz,经过PLL 9倍频后 PLLCLK的频率为72MHz,则经过选择器 SYSCLK(系统时钟)频率为72MHz,经过AHB分频器 1分频后 HCLK输出频率72MHz,经过APB1分频器 2分频后 PCLK1频率为36MHz; 经过APB2分频器 1分频后 PCLK2频率为72MHz。

在这里插入图片描述(3)时钟输出MCO脚(PA8),可以选择PLL输出的2分频、HSI、HSE或者系统时钟
在这里插入图片描述

2.3、 用HSE时钟,程序设置时钟参数流程:

01、将RCC寄存器重新设置为默认值 RCC_DeInit;
02、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON);
03、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp();
04、设置AHB时钟 RCC_HCLKConfig;
05、设置高速AHB时钟 RCC_PCLK2Config;
06、设置低速速AHB时钟 RCC_PCLK1Config;
07、设置PLL RCC_PLLConfig;
08、打开PLL RCC_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值