STM32F407时钟树

最近学习下STM32F4的芯片,首先还是要了解时钟系统。库函数调用函数static void SetSysClock(void)初始化时钟。依次初始化HCLK、 PCLK2、PCLK1、PLL。最后打开PLL

static void SetSysClock(void)
{
/******************************************************************************/
/*            PLL (clocked by HSE) used as System clock source                */
/******************************************************************************/
  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
  
  /* Enable HSE */
  RCC->CR |= ((uint32_t)RCC_CR_HSEON);
 
  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

  if ((RCC->CR & RCC_CR_HSERDY) != RESET)
  {
    HSEStatus = (uint32_t)0x01;
  }
  else
  {
    HSEStatus = (uint32_t)0x00;
  }

  if (HSEStatus == (uint32_t)0x01)
  {
    /* Select regulator voltage output Scale 1 mode */
    RCC->APB1ENR |= RCC_APB1ENR_PWREN;
    PWR->CR |= PWR_CR_VOS;

    /* HCLK = SYSCLK / 1*/
    RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
   
    /* PCLK2 = HCLK / 2*/
    RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
    
    /* PCLK1 = HCLK / 4*/
    RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;

    /* Configure the main PLL */
    RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
                   (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);

    /* Enable the main PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till the main PLL is ready */
    while((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }
<span style="white-space:pre">	</span>。。。
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F407 的时钟用于为芯片内部的各种模块提供时钟信号,这些模块包括处理器核、总线接口、外设控制器等等。时钟的主要作用是确保芯片内部的各种模块能够按照预定的时序工作,从而保证整个嵌入式系统的正常运行。 时钟由各种时钟源、时钟分频器、时钟缓冲器、时钟门控等组成,可以通过软件配置来实现对时钟信号的控制和管理。具体来说,时钟的作用包括以下几个方面: 1.为处理器核提供时钟信号,保证其正常工作。时钟可以为处理器核提供多种时钟频率,并且支持动态切换,从而适应不同的应用场景和功耗要求。 2.为总线接口提供时钟信号,保证外设与处理器核之间的数据传输正常进行。时钟可以为总线接口提供稳定的时钟信号,并且支持多种时钟分频和门控方式,从而适应不同的总线规范和传输速率要求。 3.为各种外设控制器提供时钟信号,保证外设正常工作。时钟可以为各种外设控制器提供不同的时钟频率和时序要求,从而保证各种外设的正常工作。 4.支持低功耗模式,优化系统功耗。时钟可以支持多种低功耗模式,从而优化系统的功耗和运行效率。 总之,时钟STM32F407 的重要组成部分,其作用是为整个嵌入式系统提供稳定的时钟信号,保证各种模块按照预定的时序工作,从而实现系统的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值