目录
嵌入式入坑者,与君共勉,大家一起加油!
💬推荐一款模拟面试、刷题神器,从基础到大厂面试题👉点击跳转刷题网站进行注册学习
1. 什么是系统时钟
时钟系统就像人的心脏一样,在单片机系统中起着脉搏的作用;时钟是由电路产生的具有周期性的脉冲信号,要想使用单片机的外设必须开启相应的时钟,也就是给时钟使能。我们知道,操作一个外设的本质是操作其对应的寄存器,而寄存器由D触发器构成,必须通过时钟才能改写触发器的值,所以想要操作外设必须使能相应的时钟;对于CPU来说,时钟的频率越高,其时钟值越小,这里可以理解时钟是一个信号的周期,时钟=1/f,频率越高,时钟越小,也就是单位时间内 CPU 能够做到更多的事,也就是我们常说的CPU运行快;
STM32F4xx的时钟系统主要是给不同外设提供时钟,不同外设所需的时钟频率不同,如果像51单片机一样共用一个系统时钟,会造成资源浪费,给CPU运行带来负担,况且有些外设也接受不了这么大的频率;所以默认状态下,所有时钟是关闭的,操作哪个外设,就首先对哪个外设对应的时钟进行使能;
STM32 共有5个时钟源:HSE(高速外部时钟)、HSI(高速内部时钟)、LSE(低速外部时钟)、LSI(低速内部时钟)、PLL(锁相环倍频输出);
2. 时钟树

按照从上到下,从左到右的顺序,我们依次来看时钟树的结构:使用任何外设之前一定要先使能对应的时钟,否则无法使用对应的外设;
首先,LSI 低速内部时钟供到独立看门狗使用,32KHz,同时接到RTCSEL上,图中梯形形状代表着选择作用,也就是RTC可以选择LSE低速外部时钟使能,也可以选择LSI,在这里,通常选择LSE,因为LSE外接晶振,精度较高;LSE直接供RTC使用,LSE还可以经过1-5的分频后供MCO1使用;HSI 可以经过1-5 的分频后供 MCO1使用,HSI 也可以供给系统时钟 SYSCLK 选择使用,HSI 还可以通过分频后,在经过倍频,经过PLLP或者PLLQ后通过PLL输出;HSE通过1-5分频后可以供MCO2使用,HSE也可以供给系统时钟选择使用;PLL锁存倍频输出可以直接供外设使用;PLLI2S称为专用PLL;系统时钟可以是HSI、HSE、PLLCLK供应,其可以供应以太网PTP时钟;也可以通过AHB总线协议到AHB总线、内核、存储器和DMA,或者到Cortex系统定时器;

2.1 LSI
① LSI:low speed Internal Clock signal,低速内部(硬件焊接时不用外部加晶振,内部集成晶振 ag. CH340C)时钟。RC振荡器,频率32KHz左右。供看门狗(IWDG)和自动唤醒单元(AWU)使用。LSI RC更多的是担当一个低功耗时钟源的角色,可以在停机或者待机模式下保持运行。
使用:LSI RC是通过RCC时钟控制和状态寄存器RCC_CSR中的 LSION 位打开或关闭;RCC时钟控制和状态寄存器RCC_CSR中的 LSIDAY 标志指示低速内部振荡器是否稳定,硬件将此位置1,此时钟才可以使用;LSI RC更多的是担当一个低功耗时钟源的角色,可以在停机或者待机模式下保持运行。

为独立看门狗或者RTC提供时钟;(上图)
RCC时钟控制和状态寄存器RCC_CSR;(下图)
2.2 LSE
② LSE:low Speed External Clock signal,低速外部(外部焊接时加上晶振和滤波电容)时钟。接32.768KHz的石英晶体,主要作为RTC的时钟源来提供时钟/日历或其他定时功能,具有功率低且精度高的优点。 其使用方法和 LSI 不尽相同。
使用:LSE 晶振是通过RCC备份域控制寄存器RCC_BDCR中的 LSION 位打开或关闭;RCC备份域控制寄存器RCC_BDCR中的 LSEDAY 标志指示LSE晶振是否稳定,硬件将此位置1,此时钟才可以使用;如在RCC 时钟中断寄存器 (RCC_CIR) 中使能中断,则可产生中断。

原理图上32.768MHz的外部晶振,直接接到芯片的引脚上。

主要作为RTC使能(上图);
RCC备份域控制寄存器RCC_BDCR(下图);

文章详细介绍了STM32的时钟系统,包括LSI、LSE、HSI、HSE和PLLCLK等时钟源,以及它们在系统中的作用和配置。此外,还讨论了SysTick定时器的功能,作为操作系统心跳和中断源的角色,并提及其寄存器配置。最后,文章提及了IO引脚的复用和映射以及NVIC中断优先级的设置和管理。

2275

被折叠的 条评论
为什么被折叠?



