[学习笔记]STM32F1系统时钟配置(寄存器、标准库、HAL库)

这篇博客详细介绍了如何配置STM32F1的系统时钟,包括寄存器、标准库和HAL库的方法。通过设置PLL、读写周期、开启HSE和PLL、选择系统时钟源以及设置AHB、APB1、APB2等步骤,最终实现72MHz的系统时钟。实验结果显示,正确配置后,LED闪烁速度明显加快,验证了时钟配置的成功。
摘要由CSDN通过智能技术生成

目录

4. 系统时钟配置

1. 实验内容及步骤:

2. 硬件说明

3. 寄存器说明

1. 设置PLL(即1,2,3)

2. 设置读写周期(即4)

3. 开启HSE和PLL

4. 设置SW(即5)

5. 设置AHB、APB1、APB2(即6)

4. 程序设计(寄存器)

5. 程序设计(标准库)

6. 程序设计(HAL库)

7. 实验结果

8. 文件下载


4. 系统时钟配置

1. 实验内容及步骤:

实验内容:

       注释掉库中自带的时钟,自己手动编写时钟配置。通过LED的闪灭速度来判断时钟是否开启。没时钟时,使用自带的8MHz时钟,所以LED灯闪烁的比较慢,配置好后的系统时钟位72MHz,因此LED闪烁的比较快。

步骤:

       根据RCC时钟树进行配置。

2. 硬件说明

3. 寄存器说明

       时钟树:(STM32中文参考手册P56)

 

1. 设置PLL(即1,2,3)

       设置PLLXTPRE:

       配置成0时,即不分频,本实验中应该配置成0。RCC_CFGR &= 0xFFFD FFFF;

       设置PLLSRC:

       选择HSE作为PLL时钟输入。本实验因配置为1。RCC_CFGR |= 0x0001 0000;

       PLLMUL:

       因为STM32F1的最大时钟为72MHz,PLLMUL为倍频因子,最大为9,此时系统时钟就为72MHz。

       RCC_CFGR &= 0xFFC3 FFFF;      (清空PLLMUL)

       RCC_CFGR |= 0x001C 0000;       (设置为9倍频)

 

2. 设置读写周期(即4)

       通过配置FLASH_ACR寄存器的【2-0】来设置系统周期读取的延时,在本实验中,设置系统时钟为72MHz,因此设置为两个等待状态(010)。

       FLASH_ACR &= 0xFFF8;      (请[2-0])

       FLASH_ACR |= 0x0002;       (设置两个等待状态)

 

3. 开启HSE和PLL

       开启HSE配置RCC_CR[16]位,设置为1开启,再通过RCC_CR[17]判断HSE时钟是否开启;开启PLL配置RCC_CR[24]位,设置为1开启,在通过RCC_CR[25]位判断PLL是否开启成功。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值