网站开发之美,如何看一个网站是谁做的,信息流优化师怎么入行,延吉网站建设depawo目录 
前言 
STM32第九节#xff08;中级篇#xff09;#xff1a;RCC——时钟树讲解 
时钟树主系统时钟讲解 
HSE时钟 
HSI时钟 
锁相环时钟 
系统时钟 
SW位控制 
HCLK时钟 
PCLKI时钟 
PCLK2时钟 
RTC时钟 
MCO时钟输出 
6.2.7时钟安全系统(CSS#xff09; 
小结 前言 从…目录 
前言 
STM32第九节中级篇RCC——时钟树讲解 
时钟树主系统时钟讲解 
HSE时钟 
HSI时钟 
锁相环时钟 
系统时钟 
SW位控制 
HCLK时钟 
PCLKI时钟 
PCLK2时钟 
RTC时钟 
MCO时钟输出 
6.2.7时钟安全系统(CSS 
小结 前言 从本章开始我们就已经开始了中级篇的学习。在这一阶段我们主要学习时钟RCC中断定时器串口通信DMA读写EEPROM读写串行Flash以及FatFs的知识点整体难度又上升了一部分。所以之前的代码功底C语言编写能力以及单片机的使用至关重要。如果想学习的同学们可以观看我之前写的初级篇的内容。 创作不易点个三连支持一下吧 
STM32第九节中级篇RCC——时钟树讲解 本节课我们讲RCC——复位和时钟控制。复位部分比较简单我们本节课主要讲时钟部分。如下图就是时钟树的原理图。在讲完课程之后我们要自己写一个系统使用的配置函数并实现超频工作。官方F103系列的时钟为72M我们可以配置为128M为极限频率。 时钟树主系统时钟讲解 
HSE时钟 该时钟为外部的高速时钟如图所示他靠的是OSC_IN以及OSC_OUT进行输入以及输出来源呢是无源晶振4~16M我们通常使用8M。关于控制是RCC_CR时钟控制寄存器的位16HSEON控制。我们可以看到在下图中有两个起振电容大小为20PF。与之相匹配的还有HSI在内部做时钟两者的区别为HSE精度比较高而LSE受温度影响会有偏差。 HSI时钟 高速的内部时钟大小为8M当HSE故障时系统时钟会自动切换到HSI直到HSE启动成功。而控制它的是RCC_CR 时钟控制寄存器的位0:HSION控制。这里要注意一下HSE时钟的8M在经过倍频9倍后配置为72M而如果启动了HSI时钟则一直为8M无法正常完成工作。 锁相环时钟 来源 : (HSI/2、HSE)经过倍频所得。 控制:CFGR:PLLXTPRE、PLLMUL口注意:PLL时钟源头使用HIS/2的时候PLLMUL最大只能是16这个时候PLLCLK最大只能是64M小于ST官方推荐的最大时钟72M。 我们观察发现在HSE时钟进去之后会有一个二分频和一个不分频的线路与这根不分频线路相接的就是锁相环时钟源PLLSRC除了这跟线路还有一根就是HSI的二分频线路8M被分频为4M接入PLLSRC。相对应的寄存器为RCC_CFGR寄存器的第十七位PLLXTPRE。 PLLXTPRE: HSE分频器作为PLL输入(HSE divider for PLL entry)由软件置1或清”0来分频HSE后作为PLL输入时钟。只能在关闭PLL时才能写入此位。0:HSE不分频1:HSE 2分频。 PLLSRC: PLL输入时钟源(PLLentryclock source)由软件置1或清0来选择PLL输入时钟源只能在关闭PLL时才能写入此位。0:HSI振荡器时钟经2分频后作为PLL输入时钟1:HSE时钟作为PLL输入时钟。 系统时钟 我们可以看到对于系统时钟来说有三种方式可以配置系统时钟输入HSI和HSE直接输入以及PLLCLK锁相环时钟配置一般就是用锁相环时钟配置时钟为72M.他就由SW位来控制。 SW位控制 SW[1:0]:系统时钟切换(System clock switch)由软件置1或清’0来选择系统时钟源。在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时由硬件强制选择HSI作为系统时钟(如果时钟安全系统已经启动)。 00:HSI作为系统时钟: 01:HSE作为系统时钟: 10:PLL输出作为系统时钟; 11:不可用。 而相应的寄存器位SWS位也会配置为1 我们一般把SW配置为10PLL输出。然后我们读取SWS位是否为10来判断我们是否时钟切换完毕。 
HCLK时钟 HCLK:AHB高速总线时钟速度最高为72M。为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。 来源:系统时钟分频得到一般设置HCLKSYSCLK72M。 控制:CFGR:HPRE。 
PCLKI时钟 PCLK1:APB1低速总线时钟最高为36M。为APB1总线的外设提供时钟。2倍频之后则为APB1总线的定时器2-7提供时钟最大为72M。 来源:HCLK分频得到一般配置PCLK1HCLK/236M 控制:RCC CFGR 时钟配置寄存器的PPRE1位 
PCLK2时钟 PCLK2:APB2高速总线时钟最高为72M。为APB1总线的外设提供时钟。为APB1总线的定时器1和8提供时钟最大为72M。 来源:HCLK分频得到、一般配置PCLK1HCLK72M 控制 : RCC CFGR 时钟配置寄存器的PPRE2位 当APB2配置为72M的时候通过ADC预分频器最大为14MHz而在不超频的前提下最大放大倍数为4倍。 
RTC时钟 RTC时钟:为芯片内部的RTC外设提供时钟口来源:HSE RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(32KHZ) 控制:RCC备份域控制寄存器RCC BDCR:RTCSEL位控制 独立看门狗时钟:IWDGCLK由LSI提供 除了HSE提供的128分之一还有LSE时钟提供的32.768KHz还有一个40KHzz的LSI HIC。我们可以发现在LSE时钟中有两个接口分别为OSC32_IN以及OSC32_OUT如图所示 MCO时钟输出 MCO微控制器时钟输出引脚由PA8复用所得。 来源:PLLCLK/2,HSE、HSI、SYSCLK 控制:CRGR以及MCO 6.2.7时钟安全系统(CSS 时钟安全系统可以通过软件被激活。一旦其被激活时钟监测器将在HSE振荡器启动延迟后被使能并在HSE时钟关闭后关闭。 如果HSE时钟发生故障HSE振荡器被自动关闭时钟失效事件将被送到高级定时器(TIM1和TIM8)的刹车输入端并产生时钟安全中断CSSI允许软件完成营救操作。此CSSI中断连接到CortexTm-M3的NM|中断(不可屏蔽中断)。一旦CSS被激活并目HSE时钟出现故障CSS中断就产生并且NMI也自动产生。NMI将被不断执行直到CSS中断挂起位被清除。因此在NMI的处理程序中必须通过设置时钟中断寄存器(RCC CIR)里的CSSC位来清除CSS中断。 如果HSE振荡器被直接或间接地作为系统时钟(间接的意思是:它被作为PLL输入时钟并且PLL时钟被作为系统时钟)时钟故障将导致系统时钟自动切换到HSI振荡器同时外部HSE振荡器被关闭。在时钟失效时如果HSE振荡器时钟(被分频或未被分频)是用作系统时钟的PLL的输入时钟PLL也将被关闭。 
小结 本节课我们讲述了功能框图下节课我们讲这个系统使用配置代码部分。