【嵌入式入门篇】STM32开发板原理图
完整开发板讲解以下是STM32硬件的基础概念STM32 硬件概念通俗解释Cortex-M3 内核所有代码运行的核心 CPUFlash 闪存永久存储代码断电不丢SRAM 内存程序运行时的变量、数组、缓存外设GPIO、串口、定时器一个个可调用的硬件功能模块寄存器控制硬件的唯一参数改值就改硬件状态总线传输内核通过总线读写外设寄存器BOOT 启动模式决定上电从哪执行代码中断 Interrupt硬件触发打断主程序执行专属函数DMA后台自动干活不占用 CPU下面是正点原子 Mini STM32F103RCT6 开发板是国内非常经典的 STM32F1 学习开发板芯片型号STM32F103RCT6Flash256KBSRAM48KBLQFP64 封装比 C8T6 资源更大。把板子上每一块区域对照讲解和原理图、架构一一对应。核心芯片区板子中间黑色大芯片LQFP64STM32F103RCT6 主控Cortex‑M3 内核、Flash、SRAM 全部在这个芯片内部。所有外设 GPIO、串口、定时器、ADC 都封装在芯片内部外部只是引出引脚。两个金属圆柱晶振8.000M 晶振HSE 高速外部晶振系统主时钟芯片 PLL 倍频到 72MHz 主频。32.000K32.768K晶振LSE 低速晶振给 RTC 实时时钟提供时钟源用来做万年历。下侧区域4 个独立按键最上方按键RESET 复位按键按下触发 NRST 复位程序整体重启回到上电初始状态。下面 3 个普通按键自定义功能按键接 GPIO用来做输入检测、触发中断。USB‑232 芯片CH340USB 转串口芯片。电脑 USB 可以直接和 STM32 的串口通信打印日志相当于 软件程序控制台输出。不需要额外串口模块。Mini‑USB 接口供电 串口通信。右侧区域SD 卡卡槽外接 TF 卡可以读写文件做数据存储。电源开关蓝色拨动开关板子总电源开关。电源电路黑色稳压芯片、滤波电容5V 输入稳压输出 3.3V给 STM32 芯片和外设供电旁边圆形是滤波电容。左侧 上方黄色排针外接外设LCD/TFTLCD 排针接彩色液晶屏幕。OLED 排针接 OLED 显示屏。板子把芯片所有 GPIO 引脚全部引到黄色排针上用来外接 LED、传感器、电机等外设。PS/2 接口可以接老式键盘鼠标。BOOT 启动配置跳线帽黄色小跳线BOOT0 接 GND从 Flash 启动正常跑我们烧写的程序BOOT0 接 3.3V进入系统 ISP 串口下载模式。其他板载资源板载 LED 指示灯板上小 LED对应 GPIO 输出用来调试程序运行状态。24L01 无线模块插座可以插入 NRF24L01 无线通信模块。AT24C02 EEPROM 芯片右下角 8 脚芯片掉电保存小量数据类似小型持久化存储。和最小系统板的区别板上元件对应说明MCU中间 LQFP48 芯片STM32F103C8T6 主控8M 主晶振 Y1系统时钟倍频到 72MHzPC13 指示灯最经典板载 LEDBOOT0 跳线帽启动模式选择跳线接 3.3V 进入串口 ISP 下载RESET 复位按键NRST 引脚按下复位Micro USB5V 供电部分版本带 CH340 串口SWD 调试排针GND、3V3、SWCLK、SWDIO接 ST-LINK 下载调试AMS1117-3.3V 稳压芯片5V 转 3.3V 给 MCU 供电STM32F103C8U6 原理图这是STM32F103C8T6 单片机最小系统的原理图一共分为 8 个模块电源、电源指示灯、MCU 主控、BOOT 启动配置、晶振、复位、SWD 下载调试、滤波电容。1 电源模块左上角J1USB‑M 接口USB 输入 5V 电压。U1ME6211LDO 低压差稳压芯片把 USB 的 5V 转换成单片机需要的3.3V(VCC3V3)。C1 (0.1μF)、C2 (1μF)输入滤波电容滤除 5V 电源噪声。C3 (1μF)、C4 (0.1μF)输出滤波电容稳定输出 3.3V。VSS 引脚接 GNDCE 是使能脚这里直接接 5V芯片一直处于开启工作状态。2 电源指示灯右上角D1发光二极管R1 (1K)限流电阻防止 LED 烧坏。原理3.3V 上电电流流过 D1、R1 到 GNDLED 点亮表示板子供电正常。3 MCU 主控中间大芯片 U2 STM32F103C8T6STM32 主芯片所有外设都围绕它。表格结构总览列名含义引脚号芯片物理引脚编号1~48对应TQFP-48封装的实际管脚。引脚名称该引脚在芯片上的默认功能名称。类型引脚的电学特性I输入、O输出、I/O双向、S电源/地。I/O口电平标注FT表示兼容5V电压空白则表示仅支持3.3V。这是硬件连接的关键安全信息。主功能复位后该引脚默认的功能通常是普通的GPIO口如PA0、PB1。默认复用功能通过配置寄存器该引脚可实现的其他片上外设功能如串口、定时器、ADC等。重定义功能通过“重映射”功能可以将某些外设的引脚重新映射到其他GPIO上以优化PCB布线或避免冲突。特殊功能引脚VBAT1号为内部RTC实时时钟和后备寄存器供电。如果不使用可直接接VDD3.3V。OSC_IN/OSC_OUT5、6号主时钟晶振通常接8MHz的输入输出。NRST7号硬件复位引脚低电平有效。BOOT044号与BOOT1PB2配合决定芯片启动模式从Flash、系统存储器或SRAM启动。4 BOOT 启动电路右上第二块BOOT0、BOOT1 引脚电平决定 STM32 上电从哪里启动程序P13Pin 排针跳线帽。R2、R3 都是 10K 电阻。跳线帽短接 0 号BOOT00从主闪存 (Flash) 启动正常运行我们烧录的程序日常使用模式。跳线帽短接 1 号BOOT01从系统存储器启动串口下载模式。BOOT1 这里直接下拉到 GND 固定为 0。5 晶振电路右中Y18MHz 外部高速晶振STM32 的系统时钟源。C10、C1118pF 负载电容配合晶振起振接 OSCIN、OSCOUT。单片机内部 PLL 锁相环可以把 8M 倍频到 72MHz作为 CPU 运行主频。6 复位电路左下R14 (10K) 上拉电阻C27 (0.1μF) 电容RESET1 复位按键。上电自动复位刚上电电容 C27 电压为 0 → NRST 低电平芯片复位电容充电后 NRST 被 R14 拉高到 3.3V单片机开始运行。手动复位按下 RESET1 按键NRST 直接拉到 GND松开后恢复实现手动重启单片机。7 SWD 调试下载接口下中P44Pin 排针SWD 下载接口用 ST‑Link 调试器。SWDIO数据SWCLK时钟R13 (10K) 上拉 SWDIOR15 (10K) 下拉 SWCLK。SWD 只需要 4 根线3.3V、GND、SWDIO、SWCLK实现程序烧写 在线调试。8 滤波电容右下角C5‑C95 个 100nF 电容并联在 VCC3V3 和 GND 之间。 作用电源去耦滤波抑制电源纹波噪声保证单片机供电稳定。整体工作流程USB 输入 5V → ME6211 转为 3.3VLED 电源灯亮 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等外部存储器。SDIOSD卡接口控制器可连接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主机接口