目录
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是否开启成功。