历史上的今天
返回首页

历史上的今天

今天是:2026年01月13日(星期二)

正在发生

2023年01月13日 | 一图搞懂单片机STM32的5个时钟源知识!

2023-01-13 来源:zhihu

众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。


其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。


内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号.


高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。


高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。


低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。


低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。


OSC_OUT和OSC_IN开始,这两个引脚分别接到外部晶振8MHz,第一个分频器PLLXTPRE,遇到开关PLLSRC(PLL entry clock source),我们可以选择其输出,输出为外部高速时钟(HSE)或是内部高速时钟(HSI)。这里选择输出为HSE,接着遇到锁相环PLL,具有倍频作用,在这里我们可以输入倍频因子PLLMUL,要是想超频,就得在这个寄存器上做手脚啦。


经过PLL的时钟称为PLLCLK。倍频因子我们设定为9倍频,也就是说,经过PLL之后,我们的时钟从原来8MHz的 HSE变为72MHz的PLLCLK。紧接着又遇到了一个开关SW,经过这个开关之后就是STM32的系统时钟(SYSCLK)了。通过这个开关,可以切换SYSCLK的时钟源,可以选择为HSI、PLLCLK、HSE。


我们选择为PLLCLK时钟,所以SYSCLK就为72MHz了。PLLCLK在输入到SW前,还流向了USB预分频器,这个分频器输出为USB外设的时钟(USBCLK)。回到SYSCLK,SYSCLK经过AHB预分频器,分频后再输入到其它外设。


如输出到称为HCLK、FCLK的时钟,还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FSMC的FSMCCLK时钟,和作为APB1、APB2的预分频器的输入端。GPIO外设是挂载在APB2总线上的, APB2的时钟是APB2预分频器的输出,而APB2预分频器的时钟来源是AHB预分频器。因此,把APB2预分频器设置为不分频,那么我们就可以得到GPIO外设的时钟也等于HCLK,为72MHz了。


SYSCLK:系统时钟,STM32大部分器件的时钟来源。主要由AHB预分频器分配到各个部件。


HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器,DMA及cortex内核,是cortex内核运行的时钟,cpu主频就是这个信号,它的大小与STM32运算速度,数据存取速度密切相关。


FCLK:同样由AHB预分频器输出得到,是内核的“自由运行时钟”。“自由”表现在它不来自时钟 HCLK,因此在HCLK时钟停止时 FCLK 也继续运行。它的存在,可以保证在处理器休眠时,也能够采样和到中断和跟踪休眠事件 ,它与HCLK互相同步。


PCLK1:外设时钟,由APB1预分频器输出得到,最大频率为36MHz,提供给挂载在APB1总线上的外设,APB1总线上的外设如下:


RCC_APB1Periph_TIM2 TIM2时钟

RCC_APB1Periph_TIM3 TIM3时钟

RCC_APB1Periph_TIM4 TIM4时钟

RCC_APB1Periph_WWDG WWDG时钟

RCC_APB1Periph_SPI2 SPI2时钟

RCC_APB1Periph_USART2 USART2时钟

RCC_APB1Periph_USART3 USART3时钟

RCC_APB1Periph_I2C1 I2C1时钟

RCC_APB1Periph_I2C2 I2C2时钟

RCC_APB1Periph_USB USB时钟

RCC_APB1Periph_CAN CAN时钟

RCC_APB1Periph_BKP BKP时钟

RCC_APB1Periph_PWR PWR时钟

RCC_APB1Periph_ALL 全部APB1外设时钟


PCLK2:外设时钟,由APB2预分频器输出得到,最大频率可为72MHz,提供给挂载在APB2总线上的外设,APB2总线上的外设如下:


RCC_APB2Periph_AFIO 功能复用IO时钟

RCC_APB2Periph_GPIOA GPIOA时钟

RCC_APB2Periph_GPIOB GPIOB时钟

RCC_APB2Periph_GPIOC GPIOC时钟

RCC_APB2Periph_GPIOD GPIOD时钟

RCC_APB2Periph_GPIOE GPIOE时钟

RCC_APB2Periph_ADC1 ADC1时钟

RCC_APB2Periph_ADC2 ADC2时钟

RCC_APB2Periph_TIM1 TIM1时钟

RCC_APB2Periph_SPI1 SPI1时钟

RCC_APB2Periph_USART1 USART1时钟

RCC_APB2Periph_ALL 全部APB2外设时钟


推荐阅读

史海拾趣

EMS GmbH公司的发展小趣事

随着公司技术的不断成熟和产品的不断优化,EMS GmbH公司开始积极拓展市场。公司不仅在欧洲市场取得了显著的成绩,还逐渐将业务拓展至全球范围。通过参加国际展会、与合作伙伴建立战略合作关系等方式,EMS GmbH公司不断提升品牌知名度和影响力。同时,公司还注重产品质量和服务质量的提升,以确保在激烈的市场竞争中保持竞争优势。

Automatic Connector公司的发展小趣事

Automatic Connector公司自创立之初,就专注于电子连接器技术的研发与创新。公司团队不断突破传统设计,推出了多款具有高性能、高可靠性的连接器产品。随着智能手机和可穿戴设备的普及,Automatic Connector的微型连接器在市场上大受欢迎,公司因此迅速崛起。通过与知名电子设备制造商的合作,Automatic Connector逐渐在行业中树立了技术领先的形象,实现了稳健的发展。

Analytic Instruments Corp公司的发展小趣事

Analytic Instruments Corp成立于XXXX年,最初由几位热衷于电子测量与分析技术的工程师创立。他们凭借对行业的深刻理解和敏锐的市场洞察力,研发出了一款具有创新性的电子测量仪器,该仪器在精度和稳定性上均优于市场上的同类产品。这一技术突破使得公司在创业初期就获得了市场的认可,为后续的发展奠定了坚实的基础。

Fagor Electrónica公司的发展小趣事

如今,Fagor Electrónica已经成为电子和数字领域的领军企业之一。展望未来,公司将继续秉承创新驱动的发展理念,加大在人工智能、物联网等新兴领域的投入。同时,Fagor Electrónica还将积极参与全球市场竞争,拓展更广阔的市场空间。相信在不久的将来,Fagor Electrónica将会创造更加辉煌的业绩。

Hirschmann公司的发展小趣事
由于TC4066是模拟开关,其开关状态可以由外部数字信号控制。因此,可以通过编程改变输入到TC4066的数字信号(A、B、C、D等),从而改变电路中的电阻/电容值或信号路径,进而间接调整延时时间。这种方法更加灵活和精确,但需要一定的编程知识和电路调试经验。
Austek Microsystems公司的发展小趣事

Austek Microsystems成立之初,便以研发创新为核心驱动力。面对竞争激烈的市场环境,公司团队凭借深厚的技术积累,成功开发出了一款具有高性能和低功耗特点的微控制器芯片。这款芯片不仅满足了当时市场对高效能计算的需求,也为Austek Microsystems在电子行业中赢得了初步的市场认可。

问答坊 | AI 解惑

机顶盒芯片解决方案群英荟萃

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 AVS标准于2006年3月正式被批准为国家标准。由于具有较高的编码效率和较低的专利费用,因而在国内市场受到部分运营商的青睐。目前,AVS正在被中国网通在其IPTV试验中使用,该公司计划今年在大连 ...…

查看全部问答>

创意的视听眼镜

墨镜、近视镜、远视镜诸如此类见惯不惯,今天要介绍的这个眼镜确实很独特,它能在视觉和听觉上给你两重帮助。通过眼镜上的两个扩音器过滤抽取别人说话的内容,然后再通过镶嵌在上面的文字转换软件把声音信息通过文本的形式显示在镜片上(镜片在这里 ...…

查看全部问答>

如何在mfc下调用webbrowser activex控件

我在资源视图下点右键,插入activex控件,插入的是注册在pc上的空间,在ppc上无法使用。我该如何正确插入注册在ppc下的webbrowser控件? …

查看全部问答>

c51程序。。。哪位高手能帮我找出错误?我自己编的三个灯的定时程序,可是只有2个两个闪烁。。。。。

ORG 0000H ; AJMP START ; ORG 000BH ;定时器0的中断向量地址 AJMP TIME0 ;跳转到真正的定时器程序处 ORG 0030H ; START:MOV P1,#0FFH ;关所有的灯 MOV 30H,#00H ;软件计数器预清0 MOV TMOD,#01H ;定时/计数器0工作于方式1 MOV TH0,#3CH ; ...…

查看全部问答>

用wince制作机器人

最近在制作一个f1模型改造的赛车机器人,手里有44b0和2440两块板子,我想用wince来做操作系统,不知难度如何? 我曾经用51单片机做过几个机器人,但是对arm的内核不是很熟悉 对bootloader bsp之类的也不精通。之前一直是用51单片机和cc1100对机器 ...…

查看全部问答>

PIC单片机中C30编译器中函数中用数组调用常数字符串问题

关于PIC单片机不能用数组来调用字符串的问题: 函数原型 void Print_5X8(unsigned int y,unsigned int x, unsigned char ch[],unsigned int yn) {   unsigned char wm ,ii = 0;   unsigned int adder;     while(ch[ii ...…

查看全部问答>

华为硬件工程师手册

本帖最后由 paulhyde 于 2014-9-15 03:59 编辑 硬件在手,比赛无忧!  …

查看全部问答>

C2000晒晒 + LSD_MiniStick+核心板仿真器原理图

利尔达的 LSD_MiniStick,PICCOLO迷你仿真套件某一年的TI MCU DAY上送的分核心板的仿真器两部分XDS100仿真器核心板 28027,手机的相机不是很好,点击查看大图,勉强能看出28027的字样 [ 本帖最后由 juring 于 2011-11-25 22:51 编辑 ]…

查看全部问答>

OK2440文件传送问题

本人菜鸟。在linux编译好.o文件,然后转到win7下使用超级终端向开发板传送文件,显示“远程系统没有响应”。换DNW,USB及COM口都能正常连接(用了USB转串口),但是一发送文件就显示乱码,根本无法执行,这究竟是为什么?还有其他简单的方式传送文 ...…

查看全部问答>