STM32使用HSE配置系统时钟

本文介绍了如何使用STM32的HSE来配置系统时钟,以此控制LED灯的闪烁频率。通过设置AHB、APB2、APB1的预分频因子和PLL的倍频因子,可以实现系统时钟从8MHz到128MHz的调整。系统时钟速度越高,LED闪烁越快。
摘要由CSDN通过智能技术生成

使用HSE配置系统时钟控制LED灯闪烁频率

RCC 主要作用—时钟部分
RCC :reset clock control 复位和时钟控制器
设置系统时钟 SYSCLK、设置 AHB 分频因子(决定 HCLK 大小)、设置 APB2 分频因子(决定 PCLK2 大小)、设置 APB1 分频因子(决定 PCLK1 大小)、设置各个外设的分频因子;控制 AHB、APB2 和 APB1 这三条总线时钟的开启、控制每个外设的时钟的开启。
库函数的标准时钟配置为PCLK2 = HCLK = SYSCLK=PLLCLK = 72M,PCLK1=HCLK/2 = 36M。

RCC 框图剖析—时钟部分
选取库函数时钟系统时钟函数:SetSysClockTo72(); 通过对该函数的编写流程来熟悉时钟树。
在这里插入图片描述
着重了解一下使用HSE来配置系统时钟,对应的是图中的黄色部分。上面的 7 个步骤对应的设置系统时钟库函数如下,该函数截取自固件库文件 system_stm32f10x.c

static void SetSysClockTo72(void)
{
     
	__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
	//	使能 HSE,并等待 HSE 稳定
	RCC->CR |= ((uint32_t)RCC_CR_HSEON);
  
  do // 等待 HSE 启动稳定,并做超时处理
  {
   
    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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值