基于STM32单片机建立系统时钟的设计方案

发布者:MagicGarden最新更新时间:2025-08-05 来源: elecfans关键字:STM32  单片机  系统时钟 手机看文章 扫描二维码
随时随地手机看文章

这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。

在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤:

基于STM32单片机建立系统时钟的设计方案

1. 将所有的RCC外设寄存器重设为默认值;

2.启用外部高速晶振

3.等待,知道外部高速晶振稳定;

4.设置欲取指缓存使能和代码延时值;

5.设置AHB(HCLK)等于系统时钟;

6.设置高速APB2(PCLK2)为系统时钟;

7.设置低速APB1(PCLK1)为系统时钟的1/2,APB2最高是38MHz;

8.设置PLL时钟源及倍频系数,使能PLL,经过PLL被频后最高时钟只能72MHz;

9.等待PLL初始化;

10.设置PLL为系统时钟;

11.等待PLL成功作为系统时钟源。

以下通过实例代码表征上述的使用方法。主要就是根据以上的系统时钟配置的顺序来做代码处理:

ErrorStatus HSEStatusUpStatus;

//将外设RCC寄存器重设为默认值

RCC_DeInit();

//设置外部高速晶振

RCC_HSEConfig(RCC_HSE_ON);

//等待HSE起振

HSEStatusUpStatus = RCC_WaitForHSEStatusUp();

if(HSEStatusUpStatus == SUCESS)

{

//预取指缓存使能

FLASH_PrefetchBufferCmd(FLASH_PertchBuffer_Enable);

//设置代码延时值,FLASH_Latency_2,2 延时周期

FLASH_SetLatency(FLASH_Latency_2);

//设置AHB时钟(HCLK)

//RCC_SYSCLK_Div1 AHB 时钟 = 系统时钟

RCC_HCLKConfig(RCC_SYSCLK_Div1);

//设置高速AHB2为系统时钟

RCC_PCLK2Config(RCC_HCLK_Div1);

//设置低速AHB时钟

RCC_PCLK2Config(RCC_HCLK_Div2);

//设置PLL时钟

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

//使能PLL

RCC_PLLCmd(enable);

// 等待指定RCC标志位设置成功,等待PLL初始化成功

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

{

}

//设置PLL为系统时钟

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)

//0x00 HSI,0X04 HSE,0X08 PLL

while(RCC_GetSYSCLKSource() != 0x08)

{

}

}


关键字:STM32  单片机  系统时钟 引用地址:基于STM32单片机建立系统时钟的设计方案

上一篇:如何使用STM32单片机systick来实现延时定时功能
下一篇:STM32单片机实现直流减速电机控制的程序设计

推荐阅读最新更新时间:2026-03-20 11:50

基于STM32单片机建立系统时钟的设计方案
这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。 在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤: 1. 将所有的RCC外设寄存器重设为默认值; 2.启用外部高速晶振; 3.等待,知道外部高速晶振稳定; 4.设置欲取指缓存使能和代码延时值; 5.设置AHB(HCLK)等于系统时钟; 6.设置高速APB2(PCLK2)为系统时钟; 7.设置低速APB1(PCLK1)为系统时钟的1/2,APB2最高是38MHz; 8.设置PLL时钟源及倍频系数,使能PLL,经过PLL被频后最高时钟只能72MHz; 9.等待PLL初始化;
[单片机]
基于<font color='red'>STM32</font><font color='red'>单片机</font>建立<font color='red'>系统</font><font color='red'>时钟</font>的设计方案
浅谈STM32单片机时钟系统
今天来总结一下stm32单片机的时钟系统,也就是时钟树的相关知识点。单片机正常工作的三要素是电源、时钟、复位电路。由此可以说,时钟的正常工作是单片机正常工作的必要不充分条件。我们常常会把时钟比喻为单片机的心脏,其重要性不言而喻。 就是这个“心脏”心跳的频率,决定着单片机这个“人“各个”器官“的工作频率。我们系统时钟来源于它,各个外设的工作频率也是经过它分频或者倍频得出来的,任何外设要想工作,必须打开相对应的时钟。频率设置得高,那么单片机处理指令的速度也就会越快,越高效。同时,频率设置得越高,单片机的功耗也就会相应地提高。如果在一些对功耗有要求的产品上,都会把不用的外设时钟关掉。 还有众所周知的是,如果单片机的时钟频率越高,
[单片机]
浅谈<font color='red'>STM32</font><font color='red'>单片机</font>的<font color='red'>时钟</font><font color='red'>系统</font>
单片机入门学习八 STM32单片机学习五 时钟系统
单片机学习除了了解该篇 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础 中的基础外,我们还需要有时钟的概念,本篇将记录 stm32的时钟系统。 1、STM32时钟介绍 下面这幅图时stm32的时钟系统框图 1)蓝底框表示 时钟源,即: ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。(WDG看门狗 使用该时钟源) ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。(RTC实时时钟 使用该时钟源) ⑤PLL为锁相环
[单片机]
<font color='red'>单片机</font>入门学习八 <font color='red'>STM32</font><font color='red'>单片机</font>学习五 <font color='red'>时钟</font><font color='red'>系统</font>
STM32系统时钟配置
STM32的SYSCLK(系统时钟)可由三种不同的时钟源来驱动,分别是HSI振荡器时钟、HSE振荡器时钟、PLL时钟。这些设备还拥有2种二级时钟源: 1、低速内部RC(LSI RC)振荡器,频率在30~60KHZ之间变化,为了方便计算我们一般估算为40KHZ,它主要为独立看门狗提供时钟源,或通过相关寄存器配置驱动RTC(RTCCLK),用于从停机/待机模式下自动唤醒系统。 2、使用32.768KHZ的低速外部晶体时钟来驱动RTC(RTCCLK)。 为减小功耗,STM32的任一时钟源都可以独立地开启或关闭。 注意:1、当HSI(高速内部时钟)作为PLL时钟输入时,SYSCLK得到的最大频率为36MHZ(有些写的是64MHZ)。SD
[单片机]
<font color='red'>STM32</font><font color='red'>系统</font><font color='red'>时钟</font>配置
一文详解STM32时钟系统
STM32的时钟树 时钟信号推动单片机内各个部分执行相应的指令,时钟就像人的心跳一样。 STM32本身十分复杂,外设非常多,任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,如果都用高速时钟势必造成浪费。同一个电路,时钟越快功耗越大、抗电磁干扰能力越弱。复杂的MCU采用多时钟源的方法来解决这些问题。如下图,是STM32的时钟系统框图。 如上图左边的部分,看到STM32有4个独立时钟源,HSI、HSE、LSI、LSE。 HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。 HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 LSI是低速内部时钟,RC
[单片机]
一文详解<font color='red'>STM32</font>的<font color='red'>时钟</font><font color='red'>系统</font>
STM32时钟系统详解
1. STM32的时钟源主要有: 内部时钟 外部时钟 锁相环倍频输出时钟 1.1 详细介绍 HSI(内部高速时钟) 它是RC振荡器,频率可以达到8MHZ,可作为系统时钟和PLL锁相环的输入。 HSE(外部高速时钟) 接入晶振范围是4-16MHZ,可作为系统时钟和PLL锁相环的输入,还可以经过128分频之后输入给RTC。 LSI(内部低速时钟) 它是RC振荡器,频率大概为40KHZ,供给独立看门狗或者RTC,并且独立看门口只能依靠LSI作为时钟源。 LSE(外部低速时钟) 通常外接32.768MHZ晶振提供给RTC。 PLL(锁相
[单片机]
<font color='red'>STM32</font><font color='red'>时钟</font><font color='red'>系统</font>详解
STM32系统中的五个时钟源介绍
时钟信号好比是单片机的脉搏,了解STM32时钟系统很有必要。下图是STM32F1xx用户手册中的时钟系统结构图。 在STM32F1xx中,有五个时钟源,分别为HSI、HSE、LSI、LSE、PLL。 HSI是高速内部时钟,RC振荡器,频率为8MHz HSE是高速外部时钟,可接石英/陶瓷谐振器或者接外部时钟源,频率范围为4MHz~16MHz LSI是低速内部时钟,RC振荡器,频率为40kHz LSE是低速外部时钟,接频率为32.768kHz的石英晶振 PLL为锁相环倍频输出,其输出频率最大不得超过72MHz SYSCLK系统时钟SYSCLK最大频率为72MHz,它是供STM32中绝大部分部件工作的时钟源。系统时钟可由PLL、
[单片机]
<font color='red'>STM32</font><font color='red'>系统</font>中的五个<font color='red'>时钟</font>源介绍
简述stm32时钟系统的一些区别
  时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32。   下面是从网上找的一个STM32时钟框图,比《STM32中文参考手册》里面的是中途看起来清晰一些:   重要的时钟:   PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚;   1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差   2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟   3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用   在ST
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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