news 2026/9/3 12:23:17

【嵌入式入门篇】STM32开发板原理图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【嵌入式入门篇】STM32开发板原理图

完整开发板讲解

以下是STM32硬件的基础概念

STM32 硬件概念通俗解释
Cortex-M3 内核所有代码运行的核心 CPU
Flash 闪存永久存储代码,断电不丢
SRAM 内存程序运行时的变量、数组、缓存
外设(GPIO、串口、定时器)一个个可调用的硬件功能模块
寄存器控制硬件的唯一参数,改值就改硬件状态
总线传输内核通过总线读写外设寄存器
BOOT 启动模式决定上电从哪执行代码
中断 Interrupt硬件触发,打断主程序执行专属函数
DMA后台自动干活,不占用 CPU

下面是正点原子 Mini STM32F103RCT6 开发板,是国内非常经典的 STM32F1 学习开发板,芯片型号STM32F103RCT6:Flash=256KB,SRAM=48KB,LQFP64 封装,比 C8T6 资源更大。把板子上每一块区域对照讲解,和原理图、架构一一对应。

🔹核心芯片区(板子中间)

  1. 黑色大芯片(LQFP64):STM32F103RCT6 主控,Cortex‑M3 内核、Flash、SRAM 全部在这个芯片内部。所有外设 GPIO、串口、定时器、ADC 都封装在芯片内部,外部只是引出引脚。

  2. 两个金属圆柱晶振

    • 8.000M 晶振:HSE 高速外部晶振,系统主时钟,芯片 PLL 倍频到 72MHz 主频。
    • 32.000K(32.768K)晶振:LSE 低速晶振,给 RTC 实时时钟提供时钟源,用来做万年历。

🔹下侧区域

  1. 4 个独立按键

    • 最上方按键:RESET 复位按键,按下触发 NRST 复位,程序整体重启,回到上电初始状态。
    • 下面 3 个普通按键:自定义功能按键,接 GPIO,用来做输入检测、触发中断。
  2. USB‑232 芯片(CH340):USB 转串口芯片。电脑 USB 可以直接和 STM32 的串口通信,打印日志,相当于 软件程序控制台输出。不需要额外串口模块。

  3. Mini‑USB 接口:供电 + 串口通信。

🔹右侧区域

  1. SD 卡卡槽:外接 TF 卡,可以读写文件,做数据存储。

  2. 电源开关(蓝色拨动开关):板子总电源开关。

  3. 电源电路(黑色稳压芯片、滤波电容):5V 输入稳压输出 3.3V,给 STM32 芯片和外设供电,旁边圆形是滤波电容。

🔹左侧 & 上方黄色排针(外接外设)

  1. LCD/TFTLCD 排针:接彩色液晶屏幕。
  2. OLED 排针:接 OLED 显示屏。板子把芯片所有 GPIO 引脚全部引到黄色排针上,用来外接 LED、传感器、电机等外设。
  3. PS/2 接口:可以接老式键盘鼠标。
  4. BOOT 启动配置跳线帽(黄色小跳线)
    • BOOT0 接 GND:从 Flash 启动(正常跑我们烧写的程序)
    • BOOT0 接 3.3V:进入系统 ISP 串口下载模式。

🔹其他板载资源

  • 板载 LED 指示灯:板上小 LED,对应 GPIO 输出,用来调试程序运行状态。

  • 24L01 无线模块插座:可以插入 NRF24L01 无线通信模块。

  • AT24C02 EEPROM 芯片(右下角 8 脚芯片):掉电保存小量数据,类似小型持久化存储。

和最小系统板的区别

板上元件对应说明:

  1. MCU(中间 LQFP48 芯片):STM32F103C8T6 主控
  2. 8M 主晶振 Y1:系统时钟,倍频到 72MHz
  3. PC13 指示灯:最经典板载 LED
  4. BOOT0 跳线帽:启动模式选择(跳线接 3.3V 进入串口 ISP 下载)
  5. RESET 复位按键:NRST 引脚,按下复位
  6. Micro USB:5V 供电,部分版本带 CH340 串口
  7. SWD 调试排针:GND、3V3、SWCLK、SWDIO,接 ST-LINK 下载调试
  8. AMS1117-3.3V 稳压芯片:5V 转 3.3V 给 MCU 供电

STM32F103C8U6 原理图

这是STM32F103C8T6 单片机最小系统的原理图,一共分为 8 个模块:电源、电源指示灯、MCU 主控、BOOT 启动配置、晶振、复位、SWD 下载调试、滤波电容。

1 电源模块(左上角)
  • J1:USB‑M 接口,USB 输入 5V 电压。
  • U1:ME6211LDO 低压差稳压芯片,把 USB 的 5V 转换成单片机需要的3.3V(VCC3V3)
  • C1 (0.1μF)、C2 (1μF):输入滤波电容,滤除 5V 电源噪声。
  • C3 (1μF)、C4 (0.1μF):输出滤波电容,稳定输出 3.3V。
  • VSS 引脚接 GND;CE 是使能脚,这里直接接 5V,芯片一直处于开启工作状态。
2 电源指示灯(右上角)
  • D1:发光二极管;R1 (1K):限流电阻,防止 LED 烧坏。
  • 原理:3.3V 上电,电流流过 D1、R1 到 GND,LED 点亮,表示板子供电正常。
3 MCU 主控(中间大芯片 U2 STM32F103C8T6)

STM32 主芯片,所有外设都围绕它。

表格结构总览

列名含义
引脚号芯片物理引脚编号(1~48),对应TQFP-48封装的实际管脚。
引脚名称该引脚在芯片上的默认功能名称。
类型引脚的电学特性:I(输入)、O(输出)、I/O(双向)、S(电源/地)。
I/O口电平标注FT表示兼容5V电压,空白则表示仅支持3.3V。这是硬件连接的关键安全信息。
主功能复位后该引脚默认的功能,通常是普通的GPIO口(如PA0、PB1)。
默认复用功能通过配置寄存器,该引脚可实现的其他片上外设功能(如串口、定时器、ADC等)。
重定义功能通过“重映射”功能,可以将某些外设的引脚重新映射到其他GPIO上,以优化PCB布线或避免冲突。

特殊功能引脚

  • VBAT(1号):为内部RTC(实时时钟)和后备寄存器供电。如果不使用,可直接接VDD(3.3V)。
  • OSC_IN/OSC_OUT(5、6号):主时钟晶振(通常接8MHz)的输入输出。
  • NRST(7号):硬件复位引脚,低电平有效。
  • BOOT0(44号):与BOOT1(PB2)配合,决定芯片启动模式(从Flash、系统存储器或SRAM启动)。
4 BOOT 启动电路(右上第二块)

BOOT0、BOOT1 引脚电平决定 STM32 上电从哪里启动程序:

  • P1:3Pin 排针跳线帽。
  • R2、R3 都是 10K 电阻。
    • 跳线帽短接 0 号:BOOT0=0,从主闪存 (Flash) 启动(正常运行我们烧录的程序,日常使用模式)。
    • 跳线帽短接 1 号:BOOT0=1,从系统存储器启动(串口下载模式)。

BOOT1 这里直接下拉到 GND 固定为 0。

5 晶振电路(右中)
  • Y1:8MHz 外部高速晶振,STM32 的系统时钟源。
  • C10、C11:18pF 负载电容,配合晶振起振,接 OSCIN、OSCOUT。

单片机内部 PLL 锁相环可以把 8M 倍频到 72MHz,作为 CPU 运行主频。

6 复位电路(左下)
  • R14 (10K) 上拉电阻,C27 (0.1μF) 电容,RESET1 复位按键。
  1. 上电自动复位:刚上电,电容 C27 电压为 0 → NRST 低电平,芯片复位;电容充电后 NRST 被 R14 拉高到 3.3V,单片机开始运行。
  2. 手动复位:按下 RESET1 按键,NRST 直接拉到 GND,松开后恢复,实现手动重启单片机。
7 SWD 调试下载接口(下中)
  • P4:4Pin 排针,SWD 下载接口,用 ST‑Link 调试器。
  • SWDIO:数据;SWCLK:时钟;R13 (10K) 上拉 SWDIO,R15 (10K) 下拉 SWCLK。

SWD 只需要 4 根线(3.3V、GND、SWDIO、SWCLK),实现程序烧写 + 在线调试。

8 滤波电容(右下角)

C5‑C9,5 个 100nF 电容,并联在 VCC3V3 和 GND 之间。 作用:电源去耦滤波,抑制电源纹波噪声,保证单片机供电稳定。

整体工作流程

USB 输入 5V → ME6211 转为 3.3V,LED 电源灯亮; 3.3V 给 STM32 芯片供电;8M 晶振提供时钟;上电复位后;根据 BOOT 跳线选择启动模式;通过 SWD 接口下载程序,单片机运行代码。

最小系统 = 电源 + 复位 + 时钟 + 启动配置 + 下载接口,缺一不可。

系统架构

这张图是一张非常经典的STM32系列微控制器(基于ARM Cortex-M3内核,大概率是STM32F103系列)的系统架构框图

它揭示了芯片内部各个功能模块是如何连接、如何协同工作的。为了方便理解,我们可以从核心、总线、存储以及外设四个维度来拆解这张图:

1. 核心部分 (左上角)

  • Cortex-M3:这是芯片的“大脑”(CPU),负责执行代码和处理数据。
  • 它通过三条主要的内部总线与外界交互:
    • ICode (指令总线):专门用于从Flash(存储器)中读取指令(程序代码)。
    • DCode (数据总线):专门用于读写数据,比如读取变量、常量。
    • System (系统总线):用于访问SRAM(内存)和外设。

2. 存储与接口 (中上部)

  • Flash接口 & Flash:存放程序代码和只读数据的地方。
  • SRAM:芯片内部的静态随机存取存储器(内存),存放正在运行的变量和数据。
  • FSMC (可变静态存储控制器):可以外扩NOR Flash、SRAM或NAND Flash等外部存储器。
  • SDIO:SD卡接口控制器,可连接SD卡存储数据。

3. 总线矩阵 (正中央,多路交叉开关):这是系统的“交通枢纽”。它将CPU、DMA控制器、Flash、SRAM以及各个外围总线连接在一起。

  • AHB系统总线 (高级高性能总线):是整个系统最快的主干道,直接连接内核、存储器和桥接器。
  • RCC (复位和时钟控制):管理整个芯片的复位信号和各个模块的时钟频率。

4. 桥接器 (桥接1 和 桥接2):因为AHB总线速度很快,但很多外部设备(如GPIO、串口)不需要那么高的速度,所以通过“桥接器”降速,连接到两条APB (高级外围总线)上:

  • APB1 (低速外设总线):连接了功耗较低或对速度要求不高的外设,如:DAC、PWR、BKP、bxCAN、USB、I2C、UART4/5、SPI2/3、IWDG、WWDG、RTC、TIM2/3/4/5/6/7 等。
  • APB2 (高速外设总线):连接了速度较快的系统外设,如:ADC1/2/3、USART1、SPI1、TIM1/8、GPIOA-G、EXTI、AFIO 等。

5. 直接内存访问 (DMA)

  • DMA1 和 DMA2:位于图左侧。它们的作用是**“搬运工”。允许外设(如ADC、串口、SDIO)和内存(SRAM/Flash)之间直接传输数据,而不需要CPU参与**。这大大解放了CPU,让它有时间处理其他复杂运算。
  • DMA 请求:图下方的长箭头代表外设向DMA发出的请求信号(比如ADC转换完了数据,请求DMA搬走),DMA收到请求后,会通过“总线矩阵”去搬数据。

6. 一个重要的细节:DCode 与 DMA 的区别:图中左上角能看到DMA箭头直接连向总线矩阵。这意味着:

  • DCode:是CPU在读取数据时走的专用通道,速度和效率最高。
  • DMA:是外设在不经过CPU的情况下,直接搬运数据走的路。

常见名词介绍

英文缩写名称英文缩写名称
NVIC嵌套向量中断控制器CANCAN通信
SysTick系统滴答定时器USBUSB通信
RCC复位和时钟控制RTC实时时钟
GPIO通用IO口CRCCRC校验
AFIO复用IO口PWR电源控制
EXTI外部中断BKP备份寄存器
TIM定时器IWDG独立看门狗
ADC模数转换器WWDG窗口看门狗
DMA直接内存访问DAC数模转换器
USART同步/异步串口通信SDIOSD卡接口
I2CI2C通信FSMC可变静态存储控制器
SPISPI通信USB OTGUSB主机接口
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 12:20:33

FaceSnap技术解析:从Lightstage到实时个性化面部捕捉

数字角色领域一直存在一个看起来无法调和的矛盾:电影工业的 Lightstage 系统能够捕捉到极其稳定的面部材质、法线和几何细节,但设备庞大、成本高昂、流程离线;消费级实时面部捕捉又只能在短视频特效里做到“大概像”,一旦要求贴近…

作者头像 李华
网站建设 2026/9/3 12:20:09

Split Dance meme项目解析:从素材到AI视频生成的本地部署指南

这次要看的项目是 shtdn/meme ,标题里的核心词是 スプリットダンス / Split Dance ,翻译过来就是“劈叉舞”。如果你平时刷短视频和表情包,多半见过这类内容:人物在某一帧突然完成劈叉、起跳、再接一段卡点转场,或…

作者头像 李华
网站建设 2026/9/3 12:19:19

制造业的拐点,往往藏在细小的上升里

《总量未过线,结构已经先换挡》——真正的修复,不是所有行业一起热,而是订单、生产与新动能先接上电49.8%并不可怕,可怕的是只看49.8%。8月制造业PMI回升0.6个百分点,仍差荣枯线0.2个百分点。但新订单升至50.6%&#x…

作者头像 李华
网站建设 2026/9/3 12:15:09

STM32嵌入式AI实战:驾驶员疲劳检测系统架构与工程实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华