stm32cubemx时钟树配置F103C8T6
时间: 2025-05-11 20:19:41 浏览: 17
### STM32CubeMX 中 F103C8T6 的时钟树配置
在 STM32CubeMX 工具中,为 STM32F103C8T6 微控制器正确配置时钟树是一个重要的步骤。以下是关于如何完成此操作的具体说明。
#### 配置时钟源
STM32F103C8T6 支持多种时钟源,包括内部 RC 振荡器 (HSI) 和外部晶振 (HSE)[^1]。默认情况下,系统会使用 HSI 作为主时钟源。如果需要更高的精度,则可以启用 HSE 并将其设置为主时钟源。
```c
// 启用 HSE 作为时钟源的代码示例
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
```
#### 设置 PLL 参数
为了获得更高的频率,通常需要通过相位锁定环路 (PLL) 来倍频输入信号。对于 STM32F103C8T6 而言,其最大核心工作频率可达 72 MHz。因此,在 CubeMX 中应合理调整 PLL 输入分频因子、乘法因子以及输出分频因子以达到目标频率。
```c
// 配置 PLL 输出至 72MHz 的代码片段
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
```
#### 更新闪存等待状态
当提高 CPU 运行速度时,还需要同步修改 Flash 存储器访问延迟参数(Flash Latency),以便确保数据读取不会因为过高的时钟速率而失败。
---
#### 注意事项
- 在实际应用过程中,请务必验证所设定的工作频率是否满足具体应用场景下的功耗需求。
- 如果项目涉及低功耗模式设计,则需额外考虑 RTC 或其他外设所需的独立 LSE/LSI 时基支持情况。
阅读全文
相关推荐


















