STM32里系统时钟

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-16
stm32系统时钟

SystemInit() 这个是系统时钟设置,比如外部晶振8M,你通过这个设置倍频到56M、64M、72M。


各个外设通过自己的初始化配置再进行分频,比如ADC要求14M以内,所以ADC再整个6分频,从72M分频到12M才能使用。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); 这句是外设的时钟开关,必须开启才能得到分频后的时钟。

如果你没有做配置,系统默认时钟频率是72MHz的。
system_stm32f10x.c文件中有定义。
#define SYSCLK_FREQ_72MHz 72000000

这得看你程序 RCC那块的配置,
//PLL设置 SYSCLK/1 * 9 = 8*1*9 = 72MHz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
//启动PLL
RCC_PLLCmd(ENABLE);
标配是外接8Mhz,内部9倍频,平常的学习,工作都满足了!

不可能出现这种情况吧?STM32F10X系列的,外部晶振最大只能到16M
PLL的倍频值只能是整数,结果是 系统时钟 = 晶振 * 倍频值
所以倍频值 = 系统时钟 / 晶振 只能是整数,不能带小数点。
所以,即使STM32F10X允许你用25M,你也得不到72M,最大只能到50M

把25MHz分频2然后倍频6,得到75MHz的工作频率,应该没问题了吧?

  • STM32第三章-系统时钟配置
    答:在615行代码中,这个配置过程达到高潮,宏定义如RCC_CR_HSEON(0x00010000)标记了HSE时钟源的启用。总的来说,启动时的SystemInit函数启动了这场时钟设置的盛宴,而 PLL和SetSysClock则共同构建了系统的时钟架构。虽然在工程模板中通常无需自行进行这些配置,但理解时钟树的内在逻辑,对于深入掌握STM32F4...
  • stm32平台中提供哪些时钟源,其各自的频率范围是多少?
    答:1. HSI(高速内部时钟):这是一个内部RC振荡器,通常的频率范围在64 KHz到几十MHz之间,具体取决于STM32的型号。例如,在一些STM32F4系列中,HSI的频率可以是16 MHz。HSI主要用于在系统启动时提供一个基本的时钟源,直到外部时钟源稳定并接管。2. HSE(高速外部时钟):这是一个外部晶体/陶瓷谐振器...
  • stm32单片机的时钟有哪些,为什么采用多时钟系统?
    答:采用多时钟系统的原因主要有以下几点:1. 功耗优化:不同的外设和功能模块可能需要不同的工作频率。通过提供多个时钟源,STM32可以根据实际需求选择适当的时钟频率,从而优化功耗。例如,当某个外设不需要高速运行时,可以将其时钟频率降低,以减少功耗。2. 性能提升:某些功能模块,如ADC(模数转换器)或...
  • STM32程序为什么普遍使用HSE + PLL作为时钟?
    答:在STM32开发中,普遍采用HSE(高速外部时钟源)配合PLL(锁相环路)作为主时钟系统,这主要是为了充分利用芯片的高性能。STM32的典型工作频率为72MHz,这一频率能充分发挥其出色的处理能力。然而,现实中的挑战是72MHz晶振在制造过程中可能会遇到精度问题,高频率意味着对精度要求更高,加工难度和误差率...
  • stm32为什么要配置系统时钟
    答:简单理解就是,一般来说,STM32内部有一个8MHz的时钟(HSI时钟),系统上电默认的就是使用该时钟来运行程序,但这个内部的8MHz的精度并不高,也就是说有一定的误差。所以一般我们会在STM32芯片外部接一个8MHz的标准晶振(HSE时钟),配置系统时钟就是使用这个外部的HSE时钟经过内部倍频之后作为系统运行的...
  • stm32程序烧录成功但不运行,卡在系统时钟初始化
    答:您要问的是stm32程序烧录成功但不运行,卡在系统时钟初始化是什么原因吗?时钟配置问题、复位问题。1、检查时钟配置是否正确。根据STM32型号,需要配置HSI、HSE或者LSE等时钟源,错误的时钟配置会导致系统无法正常运行。2、确保复位电路没有问题。检查复位键是否按下,以及复位电路的电阻和电容是否正确连接。
  • 3.已知STM32系统时钟频率为72 MHz,如何设置相关寄存器,实现10ms定 ...
    答:设置系统时钟:使用RCC寄存器设置PLL倍频系数,将系统时钟频率设置为72 MHz。选择合适的定时器:在STM32中有多个定时器可供选择,根据需要选取合适的定时器。假设在这里我们选用TIM2定时器。配置定时器:使用TIM2的相关寄存器配置定时器的时钟源、分频系数和计数周期等参数。可以将定时器的时钟源设置为内部...
  • mdk硬件仿真STM32 怎么查看当前系统时钟
    答:1、首先打开main.c文件,在头写一个delay的延时方法,如下图。2、然后在延时方法下面写出自定义设置系统时钟的方法,如下图。3、然后就可以在入口程序中首先调用 设置系统时钟方法,传入对应的参数,先设置好系统时钟,然后再设置LED灯的点亮熄灭之间加入延时方法,如下图。4、然后编译代码,下图中可以...
  • STM32的系统默认时钟是多少
    答:如果你没有做配置,系统默认时钟频率是72MHz的。system_stm32f10x.c文件中有定义。define SYSCLK_FREQ_72MHz 72000000
  • 2018-04-26 STM32中使用内部RC振荡器做系统时钟
    答:STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法:    1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。    2)对于少于100脚的产品,有2种接法:          ...