stm32f103c8t6初始化系统时钟为72M
时间: 2023-08-01 13:12:56 浏览: 126
stm32f103时钟
要将STM32F103C8T6的系统时钟初始化为72MHz,可以使用如下代码:
```c
// 启用外部晶振作为时钟源
RCC->CR |= RCC_CR_HSEON;
while(!(RCC->CR & RCC_CR_HSERDY));
// 配置PLL
RCC->CFGR &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL);
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9;
RCC->CR |= RCC_CR_PLLON;
while(!(RCC->CR & RCC_CR_PLLRDY));
// 配置FLASH延时
FLASH->ACR &= ~(FLASH_ACR_LATENCY);
FLASH->ACR |= FLASH_ACR_LATENCY_2;
// 切换至PLL作为系统时钟源
RCC->CFGR &= ~(RCC_CFGR_SW);
RCC->CFGR |= RCC_CFGR_SW_PLL;
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);
```
上述代码的具体步骤如下:
1. 启用外部晶振作为时钟源,并等待晶振稳定(RCC_CR_HSEON 和 RCC_CR_HSERDY)。
2. 配置PLL,选择外部晶振作为PLL时钟源(RCC_CFGR_PLLSRC_HSE),并设置PLL倍频系数为9(RCC_CFGR_PLLMULL9)。启用PLL,并等待PLL稳定(RCC_CR_PLLON 和 RCC_CR_PLLRDY)。
3. 配置FLASH延时,根据系统时钟频率调整Flash访问延时(FLASH_ACR_LATENCY 和 FLASH_ACR_LATENCY_2)。
4. 切换至PLL作为系统时钟源,并等待系统时钟切换完成(RCC_CFGR_SW、RCC_CFGR_SW_PLL 和 RCC_CFGR_SWS)。
上述代码将系统时钟频率设置为72MHz。注意,这里没有设置AHB、APB1、APB2总线的分频系数,这些分频系数默认为1,即不分频。如果需要设置分频系数,可以在配置PLL的时候设置。
阅读全文