stm32f103c8t6的时钟树
时间: 2025-01-05 07:29:52 浏览: 5
### STM32F103C8T6时钟树配置详解
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,其内部集成了复杂的时钟系统来支持不同的工作频率需求。该器件提供了多种时钟源选项以及PLL(锁相环),用于生成CPU和其他外设所需的精确时钟信号。
#### 时钟源概述
对于STM32F103系列而言,主要存在四种类型的时钟源:
- **HSI (High Speed Internal)**:高速内置RC振荡器,默认频率为8 MHz[^1]。
- **HSE (High Speed External)**:外部晶体/陶瓷谐振器输入,可以连接4至26 MHz范围内的晶振[^1]。
- **LSI (Low Speed Internal)**:低速内置RC振荡器,默认频率约为37 kHz[^1]。
- **LSE (Low Speed External)**:外部低频晶体输入,通常为32.768 kHz,适用于RTC等功能模块[^1]。
这些时钟可以通过APB/APB2总线分配给不同外设,并可通过预分频器调整最终输出频率。
#### PLL设置
为了获得更高的处理速度,STM32允许通过PLL倍频来自定义核心运行速率。具体来说,在初始化阶段可以选择启用或禁用PLL,并设定相应的参数如MUL因子等以达到期望的工作频率。例如,当使用8MHz HSI作为PLL入口并将其乘以9,则可以获得高达72MHz的核心时钟频率[^1]。
```c
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
// 初始化HSI震荡器
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
// 设置PLL, 基于HSI * 9得到72MHz
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
```
上述代码片段展示了如何利用库函数完成基本的时钟配置过程,包括开启HSI和配置PLL使之能够提供足够的性能支撑应用开发所需的速度要求。
阅读全文