STM32第三章-系统时钟配置

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-07


在探索STM32F429的精密世界中,系统时钟就如同微控制器的心脏,驱动着一切计算与功能。每个微控制器启动时,复位程序至关重要,而STM32F429凭借其主8MHz和可靠的32.768kHz晶振,为不同任务提供了稳定的时钟基础。内核时钟的灵活性允许自定义设置,但外设时钟则需通过分频来调整,以保持系统的稳定运行。默认情况下,SetSysClock()函数会将HSE设置为168MHz,从而衍生出HCLK、PCLK1和PCLK2等关键时钟。


更深入理解,STM32F429拥有五个核心时钟源:LSI(32kHz的低功耗时钟)、LSE(稳定且低速的32.768kHz时钟)、HSE(8MHz,外部或内部选择)、HSI(16MHz)以及多功能PLL。PLL,特别是主PLL,由HSE或HSI驱动,通过倍频提供更高的时钟输出,如PLL I2S和PLLSAI,旨在优化音频性能。主PLL的计算公式是:8MHz * N/(M*P),如8MHz * 336/(8*2) = 168MHz,这决定了SYSCLK可能达到168MHz或180MHz,取决于具体的配置。


关键的SetSysClock()函数</在此过程中扮演着重要角色,它负责调整AHB、AHB1和AHB2的时钟频率,这些都是系统核心性能的基石。通过深入研究SystemInit函数,你会发现它如何精细地配置RCC寄存器,比如开启HSI振荡器、设置PLLCFGR,确保时钟系统的稳定和高效运作。


在615行代码中,这个配置过程达到高潮,宏定义如RCC_CR_HSEON(0x00010000)标记了HSE时钟源的启用。总的来说,启动时的SystemInit函数启动了这场时钟设置的盛宴,而 PLL和SetSysClock则共同构建了系统的时钟架构。虽然在工程模板中通常无需自行进行这些配置,但理解时钟树的内在逻辑,对于深入掌握STM32F429的性能至关重要。




  • STM32第三章-系统时钟配置
    答:主PLL的计算公式是:8MHz * N/(M*P),如8MHz * 336/(8*2) = 168MHz,这决定了SYSCLK可能达到168MHz或180MHz,取决于具体的配置。关键的SetSysClock()函数</在此过程中扮演着重要角色,它负责调整AHB、AHB1和AHB2的时钟频率,这些都是系统核心性能的基石。通过深入研究SystemInit函数,你会发现...
  • stm32时钟配置步骤
    答:开启外部高速时钟 在红框处设置想要的频率
  • stm32系统时钟
    答:SystemInit() 这个是系统时钟设置,比如外部晶振8M,你通过这个设置倍频到56M、64M、72M。各个外设通过自己的初始化配置再进行分频,比如ADC要求14M以内,所以ADC再整个6分频,从72M分频到12M才能使用。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); 这句是外设的时钟开关,必须开启才能得到...
  • stm32的内部时钟在哪儿配置
    答://设置系统时钟(SYSCLK) 设置PLL为系统时钟源 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择想要的系统时钟 //等待PLL成功用作于系统时钟的时钟源 // 0x00:HSI 作为系统时钟 // 0x04:HSE作为系统时钟 // 0x08:PLL作为系统时钟 while(RCC_GetSYSCLKSource() != 0x08);//需与...
  • 3.已知STM32系统时钟频率为72 MHz,如何设置相关寄存器,实现10ms定 ...
    答:设置系统时钟:使用RCC寄存器设置PLL倍频系数,将系统时钟频率设置为72 MHz。选择合适的定时器:在STM32中有多个定时器可供选择,根据需要选取合适的定时器。假设在这里我们选用TIM2定时器。配置定时器:使用TIM2的相关寄存器配置定时器的时钟源、分频系数和计数周期等参数。可以将定时器的时钟源设置为内部...
  • STM32时钟配置问题
    答:0X00000400用二进制表示:0100 0000 0000(低12位[11:0],其余高20位全为0),CFGR的10:8位是控制APB1分频的,那么0X00000400对应的10:8位为100,也就是对系统时钟2分频,系统时钟最高72M,除2以后当然不超过36了;[2:0]是指从0位到第二位,即有三位,位0,位1,位2。[3:0] [1:0...
  • STM32里系统时钟
    答:这得看你程序 RCC那块的配置,//PLL设置 SYSCLK/1 * 9 = 8*1*9 = 72MHz RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//启动PLL RCC_PLLCmd(ENABLE);标配是外接8Mhz,内部9倍频,平常的学习,工作都满足了!
  • 2018-04-26 STM32中使用内部RC振荡器做系统时钟
    答:   RCC_HCLKConfig(RCC_SYSCLK_Div1);  /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/      RCC_PCLK2Config(RCC_HCLK_Div1);  /*设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟=...
  • 请问STM32里系统时钟啊?
    答:外部高速标准接8Mhz,然后交由PLLCLK倍频,达72Mhz,作为系统时钟 交给AHB-Prescaler(预分频),然后就是各个地方去分了。内部高速RC为8Mhz,同样原理倍频72Mhz。后面的原理相同。程序中可以做内部,外部时钟自适性操作, CSS为时钟监控。这一部分以前一迷糊了很长一段时间,如果不太清楚的话可以联系我...
  • stm32的系统时钟问题
    答:嗯!系统时钟有内部时钟和外部时钟!当我们需要使用外部时钟的时候才需要配置!一般不配置就直接使用内部时钟!