STM32时钟源

发布者:CaptivatingGaze最新更新时间:2024-10-17 来源: cnblogs关键字:STM32  时钟源  时钟信号 手机看文章 扫描二维码
随时随地手机看文章

PLLK,SYSK,HCKL,PK1,PK2 之间的关系要弄清楚;

1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差
2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟 
3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用 

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 

  ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。

  ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

  ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。

  ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

  ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

  其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的1分频。RTC的时钟源通过RTCSEL[1:0]来选择。

  STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。

  另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。

  系统时钟SYSK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、1、256、512分频。其中AHB分频器输出的时钟送给5大模块使用:

  ①、送给AHB总线、内核、内存和DMA使用的HK时钟。

  ②、通过8分频后送给Cortex的系统定时器时钟。

  ③、直接送给Cortex的空闲运行时钟FK。

  ④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PK1,最大频率36MHz),另一路送给定时器(er)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。

  ⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PK2,最大频率72MHz),另一路送给定时器(er)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。

  在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。

  需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。

  连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、er2、er3、er4。注意USB模块虽然需要一个单独的48MHz时钟信号,但它应该不是供USB模块工作的时钟,而只是提供给串行接口引擎(SIE)使用的时钟。USB模块工作的时钟应该是由APB1提供的。

连接在APB2(高速外设)上的设备有:UART1、SPI1、er1、ADC1、ADC2、所有普通IO口(PA~PE)、第二功能IO口。


涉及的寄存器:
RCC 寄存器结构,RCC_TypeDeff,在文件“stm32f10x_map.h”中定义如下: 
typedef struct 

vu32 CR; //HSI,HSE,CSS,PLL等的使能 
vu32 CFGR; //PLL等的时钟源选择以及分频系数设定
vu32 CIR; // 清除/使能 时钟就绪中断
vu32 APB2RSTR; //APB2线上外设复位寄存器
vu32 APB1RSTR; //APB1线上外设复位寄存器
vu32 AHBENR; //DMA,SDIO等时钟使能
vu32 APB2ENR; //APB2线上外设时钟使能
vu32 APB1ENR; //APB1线上外设时钟使能
vu32 BDCR; //备份域控制寄存器
vu32 CSR; 
} RCC_TypeDef;

可以对上上面的时钟框图和RCC寄存器来学习,对STM32的时钟系统有个大概的了解,然后对照我们的《STM32不完全手册》的系统时钟配置函数void Stm32_ock_Init(u8 PLL)一同来学习。

关键字:STM32  时钟源  时钟信号 引用地址:STM32时钟源

上一篇:stm32的adc使用(借鉴)
下一篇:STM32下uIP移植问题

推荐阅读最新更新时间:2026-03-22 11:40

单片机stm32的5个时钟源的详细分析
  众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。   其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。   内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号.   高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,
[单片机]
单片机<font color='red'>stm32</font>的5个<font color='red'>时钟源</font>的详细分析
STM32单片机定时器的时钟源设置
STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。 时钟源问题: 名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer)。他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。 定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器。 下面以定时器2~7的时钟说明这个倍频器的作用:当APB1的预分频系数为1时,这个倍频器不起作
[单片机]
<font color='red'>STM32</font>单片机定时器的<font color='red'>时钟源</font>设置
STM32中的SysTick时钟源来自哪里?
有位朋友在后台大概问了这样一个问题:STM32的SysTick时钟源是来自Cortex系统定时器吗? 引伸: 为什么STM32CubeMX中Cortex系统定时器可选择1分频(和8分频)? 1写在前面 看到这个问题,我在想,这位朋友可能没有认真看手册,同时也存在一个误区。 我顺便也搜索了一下,网上很多文章都说到:SysTick时钟源是来自Cortex系统定时器,就是那个有8分频的时钟 但是,我们实际应用中,SysTick时钟源真的是来自这个Cortex系统定时器吗? 2 SysTick时钟初始化代码 不管是使用标准外设库,还是HAL库,你初始化SysTick,都会调用内核中的SysTick_Config函数。 比如: Sy
[单片机]
<font color='red'>STM32</font>中的SysTick<font color='red'>时钟源</font>来自哪里?
STM32有几个时钟源 STM32系统时钟专题讲解
在数字电路中时钟是整个电路的心脏,电路的的一举一动都是根据时钟节拍下进行的,随着信息量逐渐提高,对硬件信息处理能力提出了更大的需求,时钟作为数字硬件的关键成员,其性能需要我们关注,尤其在高速电路设计中对模拟转换芯片对时钟性能有很高的需求,因此正确选择时钟是很关键的一步,前提是我们要了解时钟的关键参数咯。在数字电路中最常见的时钟元件有晶振和锁相环、时钟缓冲器等,本节对系统时钟进行重点讲解。 STM32 系统时钟专题讲解 时钟对于整个硬件系统来说是十分重要的,每一个外设包括CPU,如果没有外部时钟的驱动就无法工作,时钟就相当于硬件的脉搏,在时钟驱动下完成指令执行。CPU和外设工作的快慢和工作效率常用时钟周期,主频来进行评定。为了让
[单片机]
<font color='red'>STM32</font>有几个<font color='red'>时钟源</font> <font color='red'>STM32</font>系统时钟专题讲解
不可错过的单片机STM32的5个时钟源知识
  众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。   其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。   内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号.   高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz
[单片机]
STM32高级定时器之时钟源
1、定时器时钟源框图 从图片中可以看到定时器有4个时钟源, (1)内部时钟 ;(2) 外部时钟模式1,定时器的通道1、2 ; (3) 外部时钟模式模式2 ,ETR脚 ; (4)内部触发输入 下面分别介绍这几种时钟源的详细配置 2、内部时钟 寄存器SMCR的SMS选择000 3、外部时钟模式1 中文手册已经有以通道2为例子详细说明,这里我以通道1来说明,算是对它的温故和补充 3.1 滤波器设置,我的理解这里的滤波,比如我这里配置为0001,不是说通道来了N=2个脉冲才算这个输入有效,而是脉冲到来后,延时N/Fsampling的时间,还是高电平,就认为这个脉冲有效 类似按键检测的延时去抖动,如果理解
[单片机]
<font color='red'>STM32</font>高级定时器之<font color='red'>时钟源</font>
stm32定时器时钟源时钟选择,重点是外部时钟源1模式的理解
有意义的参考 TI与ITRX的区别参考:https://blog.csdn.net/gtkknd/article/details/39292517 解析参考:https://blog.csdn.net/qq_33559992/article/details/103728903?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2 基础了解 时钟选择计数器时钟可由下列时钟源提供:
[单片机]
<font color='red'>stm32</font>定时器<font color='red'>时钟源</font>时钟选择,重点是外部<font color='red'>时钟源</font>1模式的理解
STM32使用内部RC振荡器】1、时钟源的设置
PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2、 HSE 或者 HSE/2。 而HSI固定为8M,故PLL输入固定为4M。 HSE通常是外部晶振8M 以下HSI代码设置的各个时钟频率为: HCLK = SYSCLK= PCLK2 = PLLCLK = 36M, PCLK1=HCLK/2 = 18M 1、keil设置 使用HSI配置系统时钟使用时钟初始化代码之前先一定要设置keil如图所示选项为: 晶振为8MHz ,不能设置25MHz等其它频率。 2、加入代码 在主函数中先调用以下函数 //系统时钟配置 HSI_SetSysClock(RCC_PLLMul_9);//HSI始终配置为36M
[单片机]
【<font color='red'>STM32</font>使用内部RC振荡器】1、<font color='red'>时钟源</font>的设置
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved