
很多刚接触 STM32 的朋友买回一块 F103 核心板以后第一件事永远是“找个例程点灯”第二件事是“把排针焊上去接外设”。至于核心板原理图里面为什么放着那几颗电阻、那两个晶振、那排 BOOT 跳线基本没有细看。这次我们直接拿 STM32F103 核心板原理图做一次完整拆解。先搞清楚这块板子由哪些最小系统电路组成再逐个分析电源、时钟、复位、BOOT、下载调试口、USB 串口、外设引脚规划这些模块的原理图设计思路顺便把很多人在实际使用中遇到的问题串起来为什么程序下载失败、为什么 USB 上电不识别、为什么 PA8 时钟输出没波形、为什么 PWM 占空比到不了 100%、为什么 GPIO 接 5V 要小心。这篇文章不是某一款具体核心板的官方原理图复述而是一套通用的 F103 最小系统板分析方法。你手里不管是 C8T6 蓝丸小板、RCT6 核心板还是 ZET6 战舰板按这套方法去梳理基本都能把原理图看懂也能在自己画板子的时候避开常见的坑。1. STM32F103 核心板原理图会看到什么一块标准 STM32F103 核心板不管外围怎么裁剪原理图里主要有下面几个部分电路模块在原理图中的常见位置作用电源输入与 LDO左上角或右下角将 USB 5V 或外部 5V 转为 3.3V给 MCU 和外围供电主控最小系统原理图中心芯片本身、去耦电容、复位电路、启动配置、晶振SWD / JTAG 调试接口板边排针或专用座程序下载与在线调试USB 转串口在带串口下载功能的核心板上常见通过 CH340 等芯片与 MCU 的 USART1 连接USB 从设备接口部分核心板保留直连 MCU 的 USB D/D-可做 HID、CDCLED / KEY / 排针板子四周最小验证与外部扩展ADC / PWM / 串口外设引出排针网络把 IO 按功能分组引到排针上拿到一张 STM32F103 核心板原理图后第一步不是逐颗电阻去看而是先按上面这个框架把整个图纸切成几个功能块。切完之后你会发现真正属于“单片机不可裁剪部分”的电路只有电源、滤波电容、时钟、复位、BOOT 和调试口。剩下的大面积排针网络本质上就是把 MCU 引脚按一定规则引出。原理图分析的主线就变成两件事第一最小系统电路怎么保证 F103 能稳定工作第二外围引出的每一组引脚在硬件和软件上是否能按预期使用。2. 适用场景与阅读边界这篇分析适合谁正在学 STM32 标准库或 HAL 库的初学者想理解核心板为什么这么设计。准备用核心板做项目但不确定某些外设引脚复用是否会“打架”的开发者。打算基于 F103 自己画一块最小系统板需要一份图纸检查清单的硬件工程师。遇到下载失败、USB 不识别、掉电丢数据、UART 通信异常想从原理图层面排查问题的嵌入式工程师。不适合谁只想复制例程跑功能完全不关心引脚和电路细节的人这篇有点“超纲”。想直接拿到某个具体品牌核心板完整原理图的人请直接去该板卡官方页面或资料仓库下载高清原图任何二手文章的截图都不如原图可靠。想用 F103 跑算力密集应用的人这颗芯片是 Cortex-M3 架构定位是控制与简单信号处理不是跑 Linux 的 MPU。这里也要说明边界本文描述的是通用 F103 最小系统电路的常见分析思路所有元器件参数、引脚耐压、时钟上限最终都要以 ST 官方数据手册、参考手册和你手上那块核心板的具体原理图为准。尤其是 GPIO 是否 5V 容忍、复位电容取多大、晶振负载电容取值不同批次、不同板厂会略有差异不能直接无脑照抄。合规方面也要提一句如果你拿到的是别人设计的原理图不管是网上下载还是同事分享分析学习时可以但用于自己产品量产前一定要确认图纸来源和使用授权。PCB 布局、核心板丝印、原创封装都可能涉及版权不要拿别人整套设计文件直接改个丝印就去打样销售。3. 最小系统原理图核心模块拆解以 STM32F103C8T6 为例典型参数是 - 内核ARM Cortex-M3 - 主频最高 72 MHz - 封装LQFP48共 48 脚 - Flash64 KB - SRAM20 KB - 工作电压2.0V - 3.6V典型 3.3V实际选型时以对应型号数据手册为准这里列出来是为了方便理解原理图中为什么 3.3V 供电是主流。3.1 电源电路F103 核心板最通用的电源方案是 USB 5V 输入 → LDO 稳压到 3.3V → 给 MCU 供电。原理图上你会看到几个关键节点VBUS 或 5V 输入来自 USB 接口或外部排针。VIN 或 5V接入 LDO 输入脚。3V3LDO 输出通常并联多颗 100nF 陶瓷电容。VDDA模拟电源脚部分板子会用磁珠或小电阻从 3V3 单独隔离出来再接一颗 1uF 到 2.2uF 电容到地。VREF / VREF-F103 部分封装有独立参考电压脚一些核心板会直接连到 VDDA 和 VSSA。分析电源电路时重点看三处输入电压范围是否覆盖你实际供电方式。输出电流是否满足 MCU 和板载外设总需求。F103 正常工作时电流不大但如果你用排针给外部传感器供电电流就要重新估算。模拟电源有没有做基本滤波。ADC 采样不稳定时很多人只查软件实际上 VDDA 上的纹波就是“隐性杀手”。3.2 复位电路F103 的 NRST 脚是低电平复位。常见核心板电路是NRST 通过一颗 10kΩ 电阻上拉到 3V3。NRST 到地接 100nF 电容。一颗复位按键一端接 NRST另一端接地。按下按键时 NRST 被拉低单片机复位松开后电容充电NRST 恢复高电平。原理图分析时注意NRST 不要只靠按键因为下载器有时会把复位线接进来。设计调试接口时可以预留 NRST 到 SWD 座这样下载失败时可以通过复位时序辅助连接。3.3 BOOT 启动配置STM32F103 的启动模式由 BOOT0 和 BOOT1 引脚决定。BOOT1 在数据手册里实际对应的是 PB2 引脚。BOOT0BOOT1 / PB2启动模式0X从主 Flash 启动10从系统存储器启动用于串口 ISP 下载11从 SRAM 启动大多数核心板把 BOOT1/PB2 直接通过电阻拉低只保留 BOOT0 跳线或按键。这样平时从 Flash 启动需要串口下载时把 BOOT0 拉高复位后进入系统存储器里的 Bootloader。从原理图上看你要确认 BOOT0 默认是通过下拉电阻接地的。如果 BOOT0 悬空芯片上电后启动模式不稳定程序可能跑飞或者进入不了主 Flash。3.4 时钟晶振电路F103 时钟树包含两个外部晶振接口HSE高速外部时钟典型值 8 MHz负责给 PLL 提供参考进而产生 72 MHz 主频。LSE低速外部时钟典型值 32.768 kHz用于 RTC 实时时钟很多核心板为了省成本会省略 LSE。HSE 的原理图接法是OSC_IN / PD0 接晶振一个脚。OSC_OUT / PD1 接晶振另一个脚。晶振两端各接一颗负载电容到地。分析晶振电路时重点不是记住电容“必须是多少 pF”而是看所选电容是否匹配晶振的负载电容要求。如果电容偏差太大轻则起振慢重则不起振。很多人用 STM32CubeMX 生成的代码后发现 HSE 起振失败程序卡死在系统时钟初始化这时候返回来检查原理图的晶振电容和布局往往会发现问题。延时、波特率、PWM 频率全部依赖时钟源。核心板的晶振电路看起来只有三个元件但 Layout 时的寄生电容、走线长度带来的影响比原理图本身更大这也是为什么我建议新手先从成熟核心板入手自己画板时再严格按参考设计调整。4. 程序下载与调试接口的原理图分析4.1 SWD 四线下载电路STM32F103 全系列支持 SWD 调试接口。SWD 只需要四根线就能完成下载和调试SWD 信号对应 MCU 引脚接法SWDIOPA13一般有上拉或由调试器决定SWCLKPA14一般有下拉或由调试器决定GNDGND公地3V33V3提供参考电平部分下载器需要很多核心板原理图上SWDIO 和 SWCLK 还会各加一颗小电阻做隔离或者串 0Ω 电阻方便在引脚复用冲突时切断调试通道。实际使用中PA13/PA14 默认是调试功能但如果你在代码里把它们重新配置成 GPIOSWD 就会失效。这时候只能按住复位键在点击下载的一瞬间松开复位等程序重新烧录后才能恢复。原理图上有 NRST 排针会方便很多。4.2 CH340 串口下载与自动下载电路带串口下载功能的核心板一般会在原理图里放一颗 USB 转串口芯片比如 CH340G、CH340C、CP2102 或 FT232。以 CH340G 为例典型连接是电脑 USB D、D- 接 CH340G 的 D、D-。CH340G 的 TXD 接 STM32 的 PA10USART1_RX。CH340G 的 RXD 接 STM32 的 PA9USART1_TX。注意交叉连接芯片 TX 要对 MCU RX芯片 RX 要对 MCU TX。很多板子为了支持一键下载还会把 CH340 的 DTR# 和 RTS# 信号通过三极管电路接到 BOOT0 和 NRST 上。原理图上看起来是一堆三极管和电阻实际上是在模拟“拉高 BOOT0 → 复位 → 进入 Bootloader → 下载完成后复位回到 Flash”的时序。这类电路分析起来比较痛苦。建议你只认关键网络BOOT0、NRST、DTR、RTS。如果想手工串口下载而不依赖一键下载也不用管三极管逻辑直接把 BOOT0 跳线拉高按复位键然后用 MCUISP 或 Flash Loader Demonstrator 下载即可。4.3 核心板上的 USB 从设备电路有些核心板把 STM32F103 的 USB 引脚也引出来了可以做 USB 鼠标、USB 键盘、USB 转串口 CDC 等实验。stm32f103 usb 上电不识别是出现概率很高的问题。原理图层面要注意F103 的 USB D 和 D- 是 PA12 和 PA11。USB 低速设备和全速设备在上电时主机通过 D 或 D- 上的上拉电阻来识别设备插入。F103 内部虽然有 USB 相关电路但部分核心板设计时D 上拉电阻的处理方式会直接影响枚举结果。如果你用的核心板在原理图上把 D 直接连到排针没有做上拉设计就要检查固件里是否把 USB_DP 内部上拉打开或者按官方参考设计在外部加上拉电阻。另外很多核心板的 USB 口同时承担“供电”和“数据”功能。单独用 USB 给板子供电没问题但 MCU 的 USB 模块没有真正跑起来时电脑上当然不会有设备枚举。这不是板子坏了而是固件没跑 USB 协议栈。5. 外设引脚规划与原理图分析从 PA1、PA3、PA8 到定时器 PWM原理图的第二个大头是排针网络。这部分看起来只是把 MCU 引脚连出来实际上涉及大量引脚复用判断。5.1 GPIO 电压边界能不能直接承受 5V很多网友关心“STM32F103 的 GPIO 作为输入能不能承受 5V 电压”。这个问题不能一刀切。STM32F103 的大部分普通 IO 是 5V 容忍的意思是这些引脚在配置为输入模式时可以接受最高 5V 的外部信号。但“5V 容忍”不等于所有引脚都可以也不等于输出模式下可以直接灌 5V。原理图分析时如果外部模块输出的是 5V TTL 电平比如一些 5V 单片机、HC 系列逻辑芯片、旧式传感器模块你需要去 ST 数据手册里查对应引脚是否有 FT5V tolerant标识。对于没有 FT 标识的引脚建议通过电阻分压、电平转换芯片或 MOS 管双向电平转换电路再接入不要直接硬接。反过来STM32F103 的 GPIO 输出是 3.3V 电平驱动 5V 输入的器件时如果对方把 3.3V 当作不确定电平就需要加电平转换或使用开漏输出加上拉到 5V。前提是引脚本身 5V 容忍否则上拉后引脚会被外部电压钳位存在风险。5.2 PA8 的 MCO 时钟输出PA8 可以配置为 MCO 功能输出内部时钟信号比如 HSE、HSI、PLL 分频后的时钟。原理图分析中如果 PA8 被同时接到某个外设排针和 LED使用时要格外小心。在 CubeMX 中把 PA8 配置为 MCO 输出后如果代码里却把它当 GPIO 点灯输出自然不正常。更常见的情况是板子默认把 PA8 引到某颗 LED你在原理图上以为可以当普通 IO 用结果复用了 MCOLED 会闪出奇怪的频率。排查方法很简单用示波器或逻辑分析仪看 PA8如果软件配置 MCO 后没有任何波形先查时钟树是否完成初始化再查该引脚是否被其他外设复用占用。5.3 ADC 输入引脚与 DMA 采集来自实战搜索中经常出现“STM32F103 4 路 AD 程序仿真”“stm32f103 pwm dma pa1 pa3”其实背后是 ADC 多通道采集和 DMA 搬运的典型需求。F103 的 ADC 输入通道分布在 PA0-PA7、PB0-PB1 等引脚上。以 PA1 和 PA3 为例// 以 HAL 库为例示意 ADC 通道初始化时把 PA1 配为 ADC1_IN1PA3 配为 ADC1_IN3 // 具体通道号以 CubeMX 生成代码为准 ADC_ChannelConfTypeDef sConfig {0}; sConfig.Channel ADC_CHANNEL_1; // PA1 sConfig.Rank 1; sConfig.SamplingTime ADC_SAMPLETIME_239CYCLES_5; HAL_ADC_ConfigChannel(hadc1, sConfig); sConfig.Channel ADC_CHANNEL_3; // PA3 sConfig.Rank 2; HAL_ADC_ConfigChannel(hadc1, sConfig);原理图上要注意ADC 引脚的输入信号范围必须在 0 到 VREF 之间不能是负压也不能超过参考电压。ADC 采样抖动的硬件原因常见有两种一种是 VDDA 滤波不够另一种是信号源输出阻抗太高导致 ADC 内部采样电容充电不足。如果核心板把多路 ADC 引脚和 PWM 引脚放在同一排相邻位置PCB 布局上容易产生串扰。原理图分析时可以通过查看网络间距和信号分组来提前判断但真正的验证还是要在实际测试中做。DMA 的好处是让 ADC 连续采样时不占用 CPU。使用 DMA 多通道采集时需要注意 DMA 缓冲区长度和 ADC 通道数对应关系。比如采集 4 路 ADCDMA 缓冲区一般是 4 个 uint16_t 为一组如果代码里通道顺序和实际引脚不匹配采集到的数据会“串位”。5.4 PWM 定时器引脚与占空比到不了 100% 的问题PWM 在 F103 上通常由高级定时器 TIM1/TIM8 或通用定时器 TIM2/TIM3/TIM4 产生。TIM3 的 PWM 输出通道一般可以映射到 PA6、PA7、PB0、PB1 等引脚TIM2 的通道则常和 PA0-PA3 有关。“定时器输出占空比到不了 100%”这个问题在 Core 板调试中出现频率很高。这里的原理图分析价值在于先确认你用的引脚确实映射到了对应定时器通道再检查软件里的占空比设置。// 占空比计算Pulse DutyCycle% * (Period 1) // 如果定时器 Period 999则 CCR 999 时占空比接近 100% // 想输出 100% 占空比不少 F103 定时器通道需要特殊处理 // 比如持续输出高电平或把 CCR 设为比 ARR 更大的值视具体定时器而定 __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_1, 1000);很多 PWM 波形看似不能达到 100%是因为你计算时把 Period 设为 999但又希望 CCR 为 1000超出了 16 位比较寄存器或 ARR 的设定范围输出行为可能不是你预期的那样。要真正输出恒定高电平最可靠的办法是直接用 GPIO 写高而不是强行把占空比设为 100%。原理图分析阶段建议把定时器通道和 GPIO 复用列一张表TIMx_CHy 默认映射到哪个引脚重映射后又会跑到哪个引脚。核心板如果引出的引脚刚好不在默认映射上就需要检查重映射函数。6. 从原理图看掉电保存、停机模式与低功耗设计F103 常用于电池供电或需要掉电保存现场数据的场景这些需求在原理图上并不是“看不见”的反而和几个特定电路强相关。6.1 VBAT 与电池备份域STM32F103 内部有备份域包括 RTC 和备份寄存器。芯片的 VBAT 脚可以外接电池或大电容在主电源断电时继续给备份域供电。原理图分析时看两点VBAT 是否通过二极管或电阻连接到 3V3以便正常供电时给备份域供电。如果需要长时间保存备份寄存器或 RTCVBAT 是否预留了电池座或超级电容接口。如果原理图里 VBAT 和 3V3 直接短接而主电源断电备份域数据会随主电源一起丢失。这就是很多人的“掉电保存数据”没实现而找不到原因的硬件源头之一。6.2 停机模式对晶振和调试口的影响F103 的停机模式STOP Mode会关闭 HSE 和 HSI但 SRAM 和寄存器内容保持。功耗可以降到很低。从原理图角度看带 LSE 晶振的板子更适合低功耗 RTC 唤醒如果没有 LSE停机模式下要用 LSI 或外部唤醒事件时间精度会差很多。停机模式下SWD 调试口也可能不可用因为内核时钟已停止。此时下载器无法连接目标芯片必须通过复位唤醒或外部中断唤醒。原理图预留 NRST 复位按键或调试复位排针在调试低功耗代码时非常重要。6.3 串口红外接收与 UART Error热词里有“stm32f103 红外接收 hal_uart_error_fe”说明很多人做红外接收时习惯把红外一体接收头直接接到串口 RX期望用串口解析红外波形。原理图层面要明白红外接收头输出的是“解调后的脉冲信号”波形特征和普通 UART 数据帧并不一致直接把信号接到 USART_RX很容易产生帧错误FE、噪声错误NE或过载错误ORE。如果你设计的是红外接收小板建议把红外输出接到普通 GPIO 外部中断 定时器输入捕获而不是接串口 RX。这样既便于测量脉宽也能避免串口被异常电平打挂。6.4 串口中断与 FreeRTOS 的硬伤在 FreeRTOS 下使用串口常见坑是中断优先级配置不对。STM32 的 PendSV 和 SysTick 优先级比较特殊如果 UART 中断优先级设置得太高或太低可能导致任务调度异常或串口数据丢失。这些和原理图的关系相对间接但引脚选择和中断引脚是否共用同一个 EXTI 通道却能在原理图阶段提前规避。比如多个按键如果分别接在不同 PA 引脚却想统一用 EXTI 处理就要查每个引脚是否属于不同 EXTI 线。F103 的 PA0-PA15 对应 EXTI0-EXTI15但同一时间一个 EXTI 线只能映射一个引脚如果设计时把两个按键都接到 PA0 和 PB0外部中断配置就会出现冲突。7. 从原理图到 STM32CubeMX 工程的引脚核对方法拿到一块新核心板后建议按下面流程把原理图和工程配置对一遍打开核心板原理图整理出实际连接的引脚网络清单。打开 STM32CubeMX选择对应芯片型号。在 Pinout 视图里按原理图逐个配置引脚。导出初始化代码后用调试器逐个验证关键引脚电平。编译一个小例程点灯、按键、串口、ADC、PWM 逐个测试。以一块典型的 STM32F103 核心板为例引脚核对清单大概是// 伪代码核心板常见引脚分配参考 // 板载 LED - PC13 或 PA1以实际板子为准 // 板载按键 - PA0 或 PB0以实际板子为准 // USART1 - PA9(TX) / PA10(RX) // SWD - PA13(SWDIO) / PA14(SWCLK) // I2C1 - PB6(SCL) / PB7(SDA) // SPI1 - PA5(SCK) / PA6(MISO) / PA7(MOSI)在实际工程中你还需要检查哪些引脚默认被调试功能占用。哪些引脚是 5V 容忍FT。哪些外设引脚在同一时刻只能用一组映射重映射是否会与其他功能冲突。有一个非常实用的检查动作在 CubeMX 里配置完所有功能后看右下角或报告窗口里有没有黄色警告。很多冲突在配置阶段就会被 CubeMX 标出来比如 PB3、PB4 默认是 JTAG 引脚如果要用作普通 GPIO必须先把调试口改为 SWD 或禁用。8. 原理图转 PCB 时的常见图纸错误排查前面讨论的是“看懂别人画的原理图”。如果你打算自己画 STM32F103 核心板还会遇到制图工具层面的各种问题。根据搜索热词中的高频问题这里单独给一个排查方向。8.1 复杂芯片出现多个原理图符号导致 PCB 封装重复不少网友遇到过“复杂芯片原理图有两个部分导入 PCB 后变成两个封装”的问题。这其实是原理图符号分块多 Part和 PCB 封装映射没搞明白。STM32 这类 Pin 数较多的芯片在设计软件里可能被拆成两个或多个原理图符号比如 Part A 放电源和调试引脚Part B 放 GPIO。这些分块在导入 PCB 时必须共用同一个 PCB footprint否则会出现两块“芯片”叠在一起或分散在两处。排查方法回到元件库确认每个 Part 的 PCB Footprint 名称完全一致。在原理图中放置器件时确保使用的是同一个元件的不同 Part而不是从库里拖了两个独立元件。生成网表或导入 PCB 后检查元件的位号是否相同如果出现 U1A、U1B、U1C 且封装相同说明分块正确。如果位号分别变成 U1 和 U2说明你用了两个独立元件不是同一元件的多 Part。8.2 网络标签不匹配与 ERC 报错在原理图上网络标签必须保证“看起来相同的名字实际字符完全一致”。比如 “3V3” 和 “3v3” 在很多 EDA 工具里会被当成不同网络导致电源没有真正连通。画 F103 核心板时电源网络命名最好全图统一全部使用大写或按工程规范定义不要混用。分析原理图时优先启用电气规则检查ERC重点检查有没有悬空输入引脚。电源引脚有没有正确连接。同一网络是否存在多个输出驱动。无连接标记是否漏标。8.3 PCB 布局对原理图设计的反推一个成熟的 F103 最小系统板原理图简单但 PCB 布局难度集中在晶振靠近 MCU走线尽量短避免过孔。去耦电容靠近对应电源引脚。VDDA 滤波网络不要和数字地混在一起。USB 差分对走线等长底层参考地尽量完整。排针标注要清晰丝印不压焊盘。9. STM32F103 核心板原理图分析排查清单为了便于直接使用这里把原理图分析中常见的问题整理成速查表问题现象可能原因排查方式解决方案程序下载失败SWDIO/SWCLK 接反、NRST 复位电路异常、BOOT0 被拉高核对调试口网络确认 PA13/PA14 连接按下复位键重试上电后程序不运行BOOT0 悬空或为高电平检查 BOOT0 默认状态BOOT0 串 10kΩ 下拉到地外部晶振不起振晶振负载电容不匹配、晶振离芯片太远示波器测 OSC_IN/OSC_OUT按晶振规格书调整电容优化布局USB 识别不到设备D/D- 上拉处理不当、固件未初始化 USB检查原理图 USB 连接按参考设计处理上拉调通枚举程序ADC 采样数值抖动VDDA 滤波不好、输入信号阻抗过高检查 VDDA 电容和采样子串加强滤波降低信号源阻抗PWM 输出占空比到不了 100%CCR 超出配置范围、通道映射不对查看定时器 ARR/CCR特殊处理或直接 GPIO 输出高电平串口接收乱码TX/RX 交叉错、波特率不对核对 USART 引脚确认芯片 TX 接对方 RXUART 出现 FE/ORE 错误红外信号或异常电平静默接入串口示波器观察波形改为 GPIO 捕获解码GPIO 外部输入损伤引脚非 5V 容忍却接 5V 信号查数据手册 FT 标识加电平转换或分压低功耗下电流降不下去板载 LDO、LED、CH340 持续耗电查看原理图外设供电断开无关外设或使用低功耗版本外设这张表不能替代手册但绝大多数核心板“可用但不好用”的问题都能在这里找到方向。10. 分析核心板的下一步实践建议原理图分析不是终点最终目的是把图纸转化为“能稳定运行的工程系统”。建议你按下面顺序实践第一步把手上的核心板画成一张“引脚功能图”。把每个排针编号、默认外设、FT 属性、可复用功能全部标出来。很多复用冲突在这张图中一眼就能看穿。第二步从最小功能开始验证电源、复位、时钟、调试下载。不要一上来就调 USB 和 ADC。先写一个空工程点灯确认最小系统没问题再逐步启用串口、定时器、ADC 外设。第三步给批量任务或重复测试做简单验证脚本。如果你打算用核心板做产测环境一定要先确认板子供电方式是 USB 还是独立电源避免批量接入电脑时 USB 供电不足导致枚举失败。原理图里如果预留了外部电源输入优先用外部电源供电。第四步保留一份“最小可运行配置”。把自己项目里最稳定的 CubeMX 配置和基础代码备份后续任何改动都从这个配置开始避免因为功能叠加导致问题边界模糊。如果是自己画板建议第一版不要过度集成。F103 核心板最值得抄的就是 ST 官方评估板和成熟开源板的参考设计参考设计的 Layout 比你自己凭空想出来的可靠性高得多。电源、晶振、复位、BOOT、SWD这些模块每一个都值得按参考设计先抄一遍再根据自己的外壳和接口需求去调整排针。至于掉电保存、停机模式、USB 上电、FreeRTOS、CDC 多串口这些偏软件侧的需求要不要在原理图上做预留主要看后续产品形态。只要板子上把 VBAT、NRST、BOOT0、SWD 四个关键节点都引出来软件调试阶段的容错率就会高很多。最后说一个很实际的建议核心板原理图的许多细节比如某颗电阻是 10k 还是 100k某颗电容是 100nF 还是 10uF单独看似乎影响不大但它们组合起来决定了整个板的稳定性和调试体验。分析时不要只看“通不通”要多问一步“为什么是这个值、为什么放这里”。把这些问题啃下来以后换任何一款单片机核心板你都能在几分钟内判断出这张图纸设计得靠不靠谱。