stm32f103c8t6内部晶振配置
时间: 2024-12-31 13:44:31 浏览: 14
### STM32F103C8T6 内部晶振配置方法
对于STM32F103C8T6微控制器,内部高速振荡器(HSI)默认频率为8MHz。为了实现更高的系统时钟频率,通常会通过锁相环(PLL)来倍频HSI信号。
#### 使用内部高速振荡器(HSI)
当使用内部高速振荡器作为系统时钟源时,可以通过修改`RCC->CR`寄存器中的相应位来启用它:
```c
// 启用内部高速振荡器
RCC->CR |= RCC_CR_HSION;
while (!(RCC->CR & RCC_CR_HSIRDY)) {}; // 等待HSI稳定
```
#### 设置PLL并使能PLL输出
要设置PLL以获得更高频率的系统时钟,在此案例中目标是达到72MHz的工作频率,则需要调整PLL乘法因子以及输入分频系数。具体操作如下所示[^1]:
```c
/* 锁相环配置: PLLCLK = HSI / 2 * 16 = 64 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLMULL16);
// 开启PLL
RCC->CR |= RCC_CR_PLLON;
// 等待PLL锁定
while(!(RCC->CR & RCC_CR_PLLRDY)){};
```
上述代码片段实现了将PLL输入源设为经过二分频后的HSI,并将其倍频至16倍,从而得到大约64MHz的PLL输出频率。
#### 切换到PLL作为系统时钟源
最后一步是切换系统的主时钟源为PLL输出:
```c
// 将SYSCLK切换到PLL
RCC->CFGR |= RCC_CFGR_SW_PLL;
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL){}; // 确认已切换成功
```
完成以上步骤之后, STM32F103C8T6将以PLL产生的高频时钟运行.
阅读全文