现在,请只从一、基础架构这一章节为我一点一点复习知识点吧。
时间: 2025-08-30 18:56:44 AIGC 浏览: 8
<think>
我们重点复习STM32F103的基础架构,特别是时钟树部分,这是整个系统运行的核心。
复习内容将包含以下知识点:
1. STM32F103的时钟源
2. 时钟树的结构和各部分的作用
3. 系统时钟的配置过程
4. 外设时钟的使能
5. 相关的库函数和寄存器
注意:我们将使用库函数的方式进行讲解,同时会提到关键寄存器。
由于用户要求使用STM32F103,我们以该型号为例。
</think>
### STM32F103基础架构复习指南
以下是STM32F103单片机基础架构的核心知识点,按学习路径分层讲解:
---
#### **一、时钟系统 ️**
1. **时钟源与切换流程**
- 4种时钟源:
$$ \begin{cases}
\text{HSI} & (8\text{MHz} \ \text{内部RC}) \\
\text{HSE} & (4-16\text{MHz} \ \text{外部晶振}) \\
\text{LSI} & (40\text{kHz} \ \text{内部低速}) \\
\text{LSE} & (32.768\text{kHz} \ \text{RTC晶振})
\end{cases} $$
- 切换流程:
```mermaid
graph LR
A[选择时钟源] --> B[配置PLL倍频]
B --> C[设置系统时钟SYSCLK]
C --> D[分配AHB/APB总线时钟]
```
系统复位后默认使用HSI[^1]
2. **PLL配置**
- 倍频公式:
$$ \text{PLL输出} = \frac{\text{输入时钟} \times \text{PLL倍频因子}}{\text{预分频系数}} $$
最大支持72MHz系统时钟(超频可达128MHz)
- 关键寄存器:`RCC_CFGR`(时钟配置寄存器)
3. **时钟树架构**
```mermaid
graph TB
SYSCLK(系统时钟) --> HCLK[AHB总线]
HCLK --> |分频| PCLK1[APB1低速外设]
HCLK --> |分频| PCLK2[APB2高速外设]
PCLK1 --> TIM2-7[TIM2/3/4/5/6/7]
PCLK2 --> GPIO[GPIO端口]
PCLK2 --> SPI1[SPI1]
```
---
#### **二、存储器架构 🧠**
1. **哈佛结构**
- 分离的指令总线与数据总线
- 三级流水线(取指-译码-执行)
2. **地址映射**
| 地址范围 | 功能 |
|----------------|---------------------|
| 0x0000 0000 | Flash启动区 |
| 0x0800 0000 | 主Flash存储器 |
| 0x1FFF F000 | 系统存储器(Bootloader)|
| 0x2000 0000 | SRAM起始地址 |
3. **启动配置**
通过BOOT引脚选择启动模式:
- BOOT0=0:从主Flash启动
- BOOT0=1, BOOT1=0:从系统存储器启动
- BOOT1=1:从SRAM启动[^2]
---
#### **三、总线架构 🚌**
1. **多层AHB总线矩阵**
- 主设备:Cortex-M3内核、DMA
- 从设备:Flash接口、SRAM、外设
```mermaid
graph LR
CortexM3 --> AHB[AHB总线]
DMA1 --> AHB
AHB --> FLASH
AHB --> SRAM
AHB --> APB1_Bridge[APB1桥]
AHB --> APB2_Bridge[APB2桥]
```
2. **总线时钟分配**
| 总线类型 | 最大频率 | 连接外设示例 |
|----------|----------|--------------------|
| AHB | 72MHz | DMA、SDIO |
| APB1 | 36MHz | TIM2-7、I2C1-2 |
| APB2 | 72MHz | GPIO、ADC1、SPI1 |
---
#### **四、电源管理 🔋**
1. **工作模式**
| 模式 | 功耗 | 唤醒源 |
|----------------|--------|----------------------------|
| 运行模式 | 最高 | - |
| 睡眠模式 | 中等 | 任意中断 |
| 停机模式 | 低 | 外部中断、RTC闹钟 |
| 待机模式 | 最低 | 复位引脚、RTC闹钟、WKUP引脚|
2. **电压调节器**
- 可选模式:
- 主调节器(MR):全性能模式
- 低功耗调节器(LPR):停机/待机模式
---
#### **五、复位系统 🔁**
1. **复位源类型**
- 上电复位(POR)
- 系统复位(NRST引脚低电平)
- 备份域复位
- 看门狗复位(IWDG/WWDG)
2. **时钟安全系统(CSS)**
- 自动切换机制:
$$ \text{HSE故障} \rightarrow \text{自动切换到HSI} \rightarrow \text{触发中断} $$
---
### ⚙️ 关键实践操作
1. **时钟配置示例(库函数)**
```c
RCC_DeInit(); // 复位时钟配置
RCC_HSEConfig(RCC_HSE_ON); // 开启HSE
while(!RCC_WaitForHSEStartUp()); // 等待HSE稳定
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // HSE*9倍频
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); // 等待PLL就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // 切换系统时钟源
```
2. **启动文件分析**
- `startup_stm32f10x.s`关键流程:
```armasm
Reset_Handler:
LDR R0, =__main ; 跳转到C库初始化
BX R0
```
---
阅读全文
相关推荐




















