
初学者最容易犯的一个错误是拿到一块 STM32F103 核心板就急着点灯、跑例程真正遇到“为什么这样接”“为什么换一块板子就不能下载”“为什么进入停机模式后功耗还是降不下去”时才发现自己对原理图只有模糊印象。STM32F103 核心板原理图并不复杂但它把所有最小系统经常踩的坑都浓缩在一起电源、时钟、复位、Boot、下载调试、USB、GPIO 外设、低功耗每一路都要能看懂来源和去向。这篇文章就按我平时拿到一块核心板后的阅读顺序来拆。你会看到的不只是某个电容、某个电阻的作用而是“怎么判断一张核心板原理图是否可靠”“怎么在改板或调试时快速定位问题”。如果你正准备自己画一块 STM32F103C8T6 或 STM32F103ZET6 最小系统板这篇内容也可以当成前置检查清单用。1. 拿到核心板原理图先建立电源和地的主干概念1.1 核心板原理图到底在讲什么STM32F103 核心板本质上就是把一颗 STM32F103 芯片能正常工作的必要条件全部画出来再把常见外设尽量引到排针上。所谓必要条件就是电源、时钟、复位、启动模式、下载调试、外部中断或唤醒引脚以及构成芯片逻辑参考的地网络。芯片内部再有强大功能如果外部条件不满足它也不会工作。分析核心板原理图时我最关心五件事3.3V 是怎么来的。GND 是不是完整铺到每个关键器件。8MHz 晶振和两个负载电容靠近哪个引脚。BOOT0、NRST、SWDIO、SWCLK 是怎么连接的。排针上的每一路引脚是否经过限流电阻、隔离电阻或电平转换。这五件事看明白了就已经掌握一张核心板 80% 的信息。剩下的 LED、按键、USB 识别电阻、参考电压滤波都属于外围补充。1.2 不要从原理图左侧看到右侧先抓网络标号很多人看原理图有一个习惯从第一页第一行往下读。这种线性阅读方式对 STM32F103 核心板不太合适因为核心板原理图通常会把电源、芯片、排针、USB 分成不同区域网络标号比走线更重要。我一般先按网络分组电源网络VUSB、5V、3.3V、VDD、VBAT、VDDA、VREF。地网络GND、AGND、GNDA以及是否单点连接。复位和启动NRST、BOOT0、BOOT1。调试接口SWDIO、SWCLK、NRST有些板子还会引出串口 TXD、RXD。外设网络LED、KEY、I2C、SPI、UART、PWM 输出。其中最容易看走眼的是 VDDA 和 VREF。很多核心板原理图上会把 VDDA 直接和 3.3V 接在一起再用一个磁珠或一个小电感隔离。实际上 VDDA 给芯片内部 ADC 和其他模拟电路供电对纹波更敏感。独立供电时模拟电源会更干净但核心板为了面积和成本经常把 VDDA 合并到 3.3V再用 0 欧电阻或磁珠连接。这不等于两张图哪里都能抄自己画带 ADC 采集的板子时模拟电源区域要单独规划。GND 和 AGND 也一样。核心板上通常只有一个地平面所以 AGND 更多是原理图上的网络名到了 PCB 上可能直接铺铜连在一起。如果看到某个核心板原理图里 AGND 与 GND 中间串了磁珠反而要小心模拟地串磁珠的做法在某些高速混合信号板上有意义但对 STM32F103 这种单片机来说如果布局不当磁珠两端压差或回流路径混乱反而可能引入噪声。所以分析核心板原理图的第一步不是数引脚数量而是把电源树和地网络画出来。能说清“5V 从哪里进、经过哪个器件变成 3.3V、再供给哪些引脚”这张图才开始对你有用。2. 最小系统模块逐个拆解电源、时钟、复位、Boot 各管什么2.1 电源电路3.3V 是核心板的命脉STM32F103 正常工作需要 3.3V 电源常见核心板会用一个 USB 的 5V 输入或者排针直接引出 5V/3.3V也有的板子保留了一个 3.3V LDO 稳压器。原理图上一般能看到类似 AMS1117-3.3、ME6211、RT9013 这样的器件也可能直接用一个低压差稳压模块。看电源模块时我先看两点。第一输入和输出电容是否齐全。输入侧通常放 10uF 电解电容或钽电容加 0.1uF 陶瓷电容输出侧也类似。第二LDO 的输入输出压差是否满足要求。AMS1117 类器件输入 5V 输出 3.3V 很常见但有些核心板支持宽压输入比如 6V 到 12V 直接供电这时如果 LDO 压差和功耗不够芯片可能发热甚至损坏。不要在原理图上看到一个 3.3V 网络就认为电源设计没问题。还要看负载。STM32F103 核心板如果板载了 USB 转串口芯片、LED、Flash、传感器整板 3.3V 负载可能超过 100mA。如果 LDO 最大输出只有 150mA测试时勉强能跑但一旦外接 ESP8266、OLED、SD 卡等模块电压就会被拉低现象往往是“程序偶尔跑飞”“复位重启”“ADC 采集值跳变”。这类问题在原理图上并看不出来只有在使用场景下才会暴露但电源裕量不足在选型时就应该被质疑。电源部分还有一个高频误区直接给 STM32F103 的 3.3V 引脚并联去耦电容。原理图上通常每个 VDD 引脚附近会放一个 100nF 电容这是标准做法为什么需要这样因为芯片内部逻辑翻转时会产生高频瞬态电流如果电源路径电感过大电压会出现跌落或振铃。100nF 电容尽量靠近对应引脚不是画在原理图角落、PCB 上躲得远远的也能生效。分析核心板原理图时要看的不是“有没有 100nF”而是“这颗电容是不是就近跨接在 VDD 和 GND 之间”。2.2 时钟电路外部晶振不是必须但晶振电路要认真看STM32F103 内部有 RC 振荡器默认情况下去掉外部晶振也能跑。但很多核心板为了串口波特率准确、USB 通信稳定还是会放一颗 8MHz 外部晶振。高频外部晶振比内部 RC 精度高温度漂移小。USB 对时钟精度要求比较明确所以带 USB 功能的 F103 应用通常都用外部晶振。晶振电路在原理图上非常简单一个晶振、两个负载电容有时还有一个 1M 电阻并接在晶振两端。有些核心板为了降低功耗或节省 BOM会省略 1M 电阻也能启动只是起振可靠性相对弱一些。负载电容常见值在 10pF 到 22pF 之间具体要根据晶振的负载电容参数来选而不是照抄别人的原理图就完事。很多人在 F103 上看到“PA8 引时钟”这个操作。PA8 可以复用为 MCO 输出把芯片内部的 HSE 或 HSI 时钟从引脚引出来给外部器件提供时钟或者用示波器查看系统时钟是否正常。但 MCO 输出不是简单的“PA8 配置成推挽输出就能用”它需要经过复用功能配置而且输出频率过高时还需要注意信号完整性和负载电容。看到核心板上 PA8 被引出并不代表可以直接当普通 GPIO 用。晶振电路最怕什么最怕 PCB 布局时晶振和负载电容离 MCU 太远或者走线绕了一大圈。原理图分析解决不了布局问题但可以帮助你识别晶振网络是不是直接连接到 OSC_IN/OSC_OUT中间有没有串电阻或跳线两个负载电容是否分别接到晶振两侧与 GND 之间。如果你看到晶振引脚上直接并接一颗电阻且网络标号名称是 R_OSC通常就是反馈电阻不是多余器件不要随便删。2.3 复位电路NRST 的高电平、低电平和复位时序STM32F103 的复位引脚 NRST 是低电平有效。核心板原理图上的复位电路常见形式是按键一端接 NRST另一端接 GNDNRST 与 3.3V 之间接一个 10kΩ 上拉电阻有时还会并联一个 100nF 电容到地。这样按键按下时 NRST 被拉低芯片复位松开后上拉电阻把 NRST 拉回高电平芯片开始正常运行。这个电路还有一个隐藏作用配合下载器实现“一键下载”。很多 STM32F103 核心板使用串口下载时需要先拉低 BOOT0再复位再进入下载模式。如果板上没有自动下载电路NRST 按键就成了手动控制复位时序的工具。原理图上看到 NRST 按键不要只把它当“重启键”它和 BOOT0、串口 DTR/RTS 信号之间可能存在配合关系。复位的常见问题有三个NRST 上拉电阻太大导致复位释放速度慢。复位按键没有消抖电容强干扰下容易误复位。下载器连接了 NRST但目标板 NRST 电路与下载器复位电路互相影响导致下载失败或复位异常。排查复位问题时先看原理图中 NRST 是否被多个器件同时驱动。比如按键、外部看门狗、调试器复位信号都接在同一个网络如果其中某个信号在调试时被拉低或拉高行为就会变得很奇怪。用万用表量 NRST 静态电压是否为高电平通常能很快发现问题。如果静态电压只有 1V 左右往往不是芯片坏而是上拉电阻虚焊、阻值贴错或网络上有外部负载拉低。2.4 Boot 启动配置BOOT0 和 BOOT1 为什么不能随便接STM32F103 的启动方式由 BOOT0 和 BOOT1 引脚的电平决定。核心板原理图通常把这组引脚做成跳线、拨码或默认下拉电阻。常见启动配置BOOT0 0BOOT1 X从主 Flash 启动这是正常用户程序运行方式。BOOT0 1BOOT1 0从系统存储器启动一般用于串口下载或进入 bootloader。BOOT0 1BOOT1 1从 SRAM 启动常用于调试。很多核心板会默认把 BOOT0 和 BOOT1 通过 10kΩ 下拉到 GND让板子上电后从 Flash 启动。需要用串口下载时再把 BOOT0 跳到高电平。看到这种设计不要觉得多余它就是为了避免用户程序烧错后锁死下载通道留一个从系统存储器启动的恢复入口。自己画最小系统板时BOOT0 建议至少保留一个跳线或焊盘。BOOT1 在不需要 SRAM 启动时可以下拉接地但如果想完全烧录测试也可以引出。在原理图上还要注意 BOOT0 上拉到 3.3V 的电阻阻值。有的板子直接用 0 欧电阻接到 3.3V也能用但在强干扰场合不如 10kΩ 上拉稳妥。BOOT0 是一个复用引脚复位期间采样采样完成后该引脚可以复用为其他功能但普通设计不会让 BOOT0 再当普通 IO 用因为它会影响启动模式选择。3. 下载调试与 USB 电路最容易在原理图阶段被忽略的电源关系3.1 SWD 接口四根线和五根线的差别在哪里STM32F103 核心板现在一般同时引出串口和 SWD。SWD 最少只需要四根线SWDIO、SWCLK、GND再加一个 3.3V 用于给下载器参考电平。有些板子会引出 NRST 和 3.3V形成五根甚至六根线的 SWD 接口。为什么有的下载器要求接 NRST比如使用 J-Link 或 ST-Link 时如果目标芯片处于停机模式、睡眠模式或者软件里把 SWD 引脚复用成普通 IOSWD 可能无法连接。这时 NRST 信号可以配合下载器在连接阶段复位芯片让调试接口重新恢复。如果核心板原理图上没有把 NRST 接到调试接口只留 SWDIO 和 SWCLK遇到调试口被占用的情况就需要手动按复位或进入 bootloader 擦除芯片非常麻烦。SWD 两个信号上要不要串联电阻低速率调试时通常不需要但高速下载、长杜邦线连接时串联 33Ω 或 100Ω 电阻可以减小振铃。有些核心板为节省成本直接省略。看原理图时如果看到 SWDIO 和 SWCLK 引脚附近串联了小电阻不要认为是多余的这是为兼容不同下载器和线缆长度做的保护设计。还有一点SWD 接口上的 3.3V 是给下载器做电平参考的不能替代目标板主电源。如果调试器通过 SWD 接口给核心板供电要确认电压和电流足够否则在跑 WiFi 模块或电机驱动时会出现调试器供电不足、芯片反复复位的情况。3.2 CH340G 转串口与 USB 上电的关系很多核心板会把 USB 转串口芯片和 MCU 放在同一块板上。常见是 CH340G、CH340N、CP2102 等。这类芯片的作用是让电脑通过 USB 识别出一个串口然后与 STM32F103 的 USART1 通信。原理图上会看到 USB 的 D 和 D- 进入 CH340G然后 CH340G 的 TXD 接 MCU 的 RXDCH340G 的 RXD 接 MCU 的 TXD也就是交叉连接。这里有一个非常重要的问题USB 5V 会不会直接给 MCU 供电取决于板子的电源跳线设计。常见核心板上有一个 USB 接口USB 的 5V 先经过 LDO 变成 3.3V再给 MCU 供电。如果 USB 转串口芯片需要 3.3V它也会从同一路 3.3V 取电。当 USB 插入时整板上电电脑能识别串口MCU 也开始运行。如果你看到某块板子标注“USB 供电与外部供电不能同时接”或“拔掉跳线后使用外部电源”一定要看原理图上 5V 网络或 3.3V 网络是否有二极管、MOS 管或跳线做电源切换。没有切换电路的板子同时接两路电源可能造成电源反灌。即使两路都是 5V电位差也会导致电流倒流轻则电压不稳重则烧板。原理图阶段就应确认电源输入是否有防倒灌措施而不要等插电后才闻味道。CH340G 这类芯片在原理图上还需要一些外围元件晶振、去耦电容、TXD/RXD 电平。F103 的 USART 电平是 3.3V TTLCH340G 的 VCC 如果是 5VRXD 引脚可能存在电平不兼容问题。有的芯片资料明确支持 5V 或 3.3V 供电但要看具体型号。有的核心板上 CH340G 的 VCC 接 5VTXD 输出高电平是 5V直接接 3.3V MCU 的 RXD 虽然很多板子能跑但并不是理想电平匹配。稳妥设计会让 CH340G 供电为 3.3V或者串电阻分压、加电平转换。分析原理图时看到“USB 转串口芯片电源是 5VMCU 是 3.3V”就要多留个心眼。3.3 CDC 多串口编程对硬件有什么影响热词里有“stm32f103 cdc 多串口编程”。严格说STM32F103 的 USB 可以配置为 CDC 设备表现成一个虚拟串口。多串口编程有两种含义一是通过 USB CDC 枚举出多个虚拟串口二是在同一颗 F103 上同时使用 USB CDC 与 UART 进行数据转发。如果核心板原理图上除了 USB 转串口芯片还把 F103 原生的 USB D 和 D- 引脚引出那么你就可以写代码把 F103 变成一个 USB CDC 设备。这颗芯片的 USB 是设备模式不是主机模式连接电脑时电脑会识别到新串口。但硬件上有一个容易忽略的细节USB D 引脚通常需要接 1.5kΩ 上拉电阻用于告诉主机“这是一个全速设备”。有些 MCU 内部已经有上拉控制有些需要外部电阻并配合 PA12 等引脚控制。不同核心板对这个电阻的处理方式不同。如果原理图上直接能用 USB 做 CDC说明板上已经预留了相关电路或 MCU 默认状态满足要求。如果只是把 USB 座子引出来但没有上拉电路那么即使代码写得再对电脑也可能无法识别。F103 同一时间使用 USB CDC 和 UART 时还要考虑 USB 的 DP/DM 走线长度、ESD 保护和阻抗匹配。核心板为了演示通常会做得比较简单不一定适合作为高可靠产品的 USB 电路直接照搬。自己画板子做 USB 应用时D 和 D- 要尽量等长、靠近 MCU并预留 ESD 保护器件位置。4. GPIO 外设电路LED、按键、PWM、DMA 和 5V 耐压问题4.1 LED 和按键电路里的电阻决定了你后续调试手段STM32F103 核心板上几乎必有 LED 和按键。LED 的原理图通常就是一个 GPIO 引脚串联一个限流电阻再连接 LED 到 3.3V 或 GND。看到这种电路时要判断 LED 是低电平点亮还是高电平点亮。如果 LED 一端接 3.3V另一端经过电阻接到 GPIO那么 GPIO 输出低电平时 LED 点亮这是“灌电流”方式。如果 LED 一端接 GPIO另一端经过电阻到 GND那么 GPIO 输出高电平时点亮这是“拉电流”方式。两种方式在原理图上都能工作但 GPIO 驱动能力不同。STM32F103 单个 GPIO 的灌电流和拉电流能力都有限普通 LED 限流电阻用 1kΩ 到 4.7kΩ 都比较常见。不能只用 100Ω 甚至 0 欧电阻否则电流偏大长期使用可能损伤引脚。按键的上下拉电阻也很重要。常见接法有两种按键一端接 GNDGPIO 另一端通过上拉电阻到 3.3V按下时读到低电平或者按键一端接 3.3VGPIO 通过下拉电阻到 GND按下时读到高电平。原理图上看懂默认电平才知道程序里应该配置成什么输入模式。很多调试问题并不是代码错了而是按键的默认电平与初始化配置不匹配。这块外设电路还承担一个重要调试功能LED 可以用来观察系统是否跑起来、中断是否触发、PWM 占空比是否变化。如果核心板上 LED 占用的 GPIO 刚好和你需要的 PWM 或 DMA 引脚冲突就需要看排针或跳线能否断开。这也是分析原理图时不能只盯 MCU 引脚还要看排针网络的原因。4.2 PWM DMAPA1、PA3 这样的引脚能不能直接驱动外部设备STM32F103 的定时器可以输出 PWMDMA 可以自动把内存中的占空比数据搬运到定时器比较寄存器从而在不占用 CPU 的情况下连续改变多路 PWM。热词里提到的“pwm dma pa1 pa3”通常是把 DMA 和定时器通道组合使用。先说原理图层面。PA1 和 PA3 在 STM32F103 上可能复用为定时器通道具体是哪个定时器、哪个通道要以数据手册和参考手册为准。核心板原理图只会把这些引脚引到排针并不会替你选好定时器映射。所以要用 PWMDMA不能只看原理图还要回查芯片的复用功能表确认 PA1 和 PA3 属于哪个定时器的 CH 引脚。PWM 信号引到排针后能不能直接驱动电机、蜂鸣器、LED要分情况。LED 可以直接通过限流电阻驱动蜂鸣器要看有源无源有源蜂鸣器可能还需要三极管或 MOS 管。电机基本不能直接由 GPIO 驱动需要电机驱动芯片或 H 桥电路。PA1 或 PA3 输出的是 3.3V 逻辑电平带载能力有限如果你把它直接接到大功率负载故障现象不会马上显现但高电平会被拉低甚至损坏引脚。DMA 在这里解决什么问题如果你在中断里不断更新比较寄存器那就在用 CPU 逐个搬运数据如果使用 DMA内存中的一组占空比数据可以自动按顺序写入寄存器定时器更新事件触发 DMA 搬运。这种方式在驱动 WS2812B、步进电机细分波形、呼吸灯渐变时非常有用。但要在项目里验证最好先用示波器或逻辑分析仪看 PA1 和 PA3 实际输出波形再判断是不是波形频率、占空比刷新率或相位关系不对。只看原理图只能确定“引脚是通的”不能确定“复用映射配置正确”。DMAPWM 在停产和低功耗模式时还有两个坑。第一进入停机模式前如果 DMA 还在搬运可能会唤醒或保持总线请求。第二PA1、PA3 引脚的 GPIO 配置与定时器复用配置之间如果切换不干净会出现 PWM 输出不了或保持恒定电平。排查顺序应该是先确认引脚没有在原理图上被其他外设占用再确认是哪个定时器通道然后用占空比固定的普通 PWM 验证最后再加 DMA。4.3 GPIO 输入究竟能不能承受 5V怎么用原理图判断STM32F103 的 GPIO 是否支持 5V 输入是一个判断错误率很高的问题。网上说法很多有人直接说“F103 所有 IO 都耐 5V”也有人遇到 PA0 或 PB 引脚接 5V 后芯片发热。问题出在“大部分 IO 支持 5V 耐受”不等于“所有引脚都能随便接 5V”。更准确的判断方法是看芯片数据手册里每个引脚的标注以及参考手册中关于 GPIO 结构的说明。在原理图层面需要注意三点标称 5V 耐受的 IO通常指该引脚在配置为输入模式或开漏输出模式时可以承受外部 5V 高电平但前提是芯片 VDD 供电正常且外部串联电阻限制电流。不是所有引脚都一样。例如 ADC 输入通道、某些模拟引脚、复位引脚、Boot 引脚的耐压范围可能有区别。不能因为“支持 5V”就把 5V 直接接到该引脚并靠内部钳位二极管导通供电。5V 耐受不是电源输入引脚长时间大电流灌入可能使内部寄生二极管导通导致 3.3V 电源被抬高。如果核心板原理图上某些引脚通过 1kΩ 或 10kΩ 串联电阻后再接到排针这往往是设计者已经考虑过高电平耐压或信号边沿问题。如果原理图上引脚直接连排针旁边没有任何保护器件你自己接 5V 外设时要额外小心。稳妥做法是用电平转换芯片或者用 MOS 管做双向电平转换而不是赌“应该能承受”。5. 低功耗、停机模式和掉电保存不能只靠代码5.1 停机模式不是软件设置完就结束外设电源和 IO 状态都要看原理图STM32F103 支持睡眠模式、停止模式和待机模式。很多人编写进入停机模式的代码后用万用表量电流发现还是几毫安甚至几十毫安于是认为是芯片没进停机。大部分时候芯片已经进入了停机模式但板子上的其他器件还在耗电。核心板原理图里有几个常见耗电源头USB 转串口芯片比如 CH340G即使没有数据传输只要正常供电也会消耗电流。电源指示灯、状态 LED 的限流电阻每颗 LED 几毫安多颗就上十几毫安。LDO 自身的静态电流。外部上拉电阻尤其是一端接 3.3V、一端接地或者接引脚的低阻值电阻。排针外接模块未断电。所以如果你想做低功耗项目不要把开发板和核心板直接当产品主板用。要先把板子上与低功耗无关的器件供电切断。有的核心板设计时预留了跳线或 0 欧电阻断开 USB 转串口部分分析原理图时要注意这些电源网络是否能被割开。进入停机模式时GPIO 的电平状态也特别重要。如果某个 GPIO 在停机前是推挽输出低电平而外部通过上拉电阻到 3.3V那么就会有电流从 3.3V 经上拉电阻流到引脚。这就是为什么停机后电流降不下去的另一个隐藏原因。代码里光调用停机指令不够还要把所有会导致“压差电流”的引脚设置成合适的电平或高阻输入。排查低功耗的步骤也和原理图有关。先看整板有几路电源域再把外设断开一级一级量电流。原理图能帮你定位哪些网络是可以断开的开关哪些电阻是耗电大头。5.2 掉电保存数据关键不是改代码而是看 VDD 和 VBATSTM32F103 中有一块备份区域在 VDD 断电时如果 VBAT 引脚有电池或超级电容供电备份寄存器和 RTC 可以继续工作。很多人在掉电保存数据时只想到把数据写进 Flash却忽略 VBAT。核心板原理图上VBAT 可能直接接到 3.3V也可能通过一个二极管或跳线接到外部电池。如果 VBAT 直接接 3.3V那么主电源掉电时 VBAT 也没电备份寄存器内容无法保留。如果需要掉电后保存少量动态数据就要额外给 VBAT 供电比如使用 CR2032 电池或法拉电容。F103 的数据保存在哪里需要区分三类Flash 掉电不丢但写次数有限适合保存配置参数、设备编号等不经常变化的数据。备份寄存器在 VBAT 有电时掉电不丢适合频繁保存少量运行数据。SRAM 掉电丢失停机模式下如果 MCU 仍由 VDD 供电SRAM 内容可以维持但在VDD断电后无法保存。热词里提到“stm32f103掉电保存数据”很多时候不是方案不存在而是核心板没有预留 VBAT 供电。改代码无法解决硬件上的 VBAT 没电问题。如果你正在选核心板要看原理图上 VBAT 网络是否与 3.3V 之间存在二极管隔离。如果有二极管或 0 欧跳线说明设计者已经考虑了 VBAT 独立供电的可能性。如果直接短接说明这块板子默认不保留备份数据。掉电检测也可以利用 PVD 或外部电压监测电路。原理图分析时可以看 MCU 的 PVD 引脚是否引出或者电源输入端是否有比较器、电阻分压网络。没有硬件掉电检测时程序只能等电压低到复位才保存往往来不及。所以严谨的掉电保存设计应当是“硬件检测电压跌落MCU 进入紧急保存流程再进入低功耗或复位”而不是“程序每隔一秒写一次 Flash”。6. 对照原理图做检查、排查和改板6.1 从原理图到 PCB 的检查顺序不管是分析现成核心板还是自己画了一块板子我建议按下面这个顺序做一次静态检查。先把检查顺序写在文档里再对照原理图逐项打勾。第一电源网络。5V 是否从 USB 或电源接口进入是否经过防倒灌电路LDO 输入输出电容位置是否合理3.3V 网络是否连接所有 VDD 引脚VDDA、VREF、VBAT 是否有明确连接。第二地网络。所有 GND 引脚是否都在原理图中连接电源地和模拟地是否按预期连接板上是否有未连接的地引脚造成回路缺失。第三时钟网络。HSE 晶振是否接在 OSC_IN 和 OSC_OUT 上负载电容是否接到 GNDOSC 引脚是否被误用作 GPIO 或其他功能。第四复位和 Boot。NRST 是否上拉复位按键是否接对BOOT0 和 BOOT1 有没有明确默认状态是否方便切换。第五调试和下载。SWDIO、SWCLK、NRST、GND 是否都接到调试接口串口 TXD 和 RXD 是否交叉连接到 USB 转串口芯片。第六外设。核心板上的 LED、按键、USB、传感器等外设是否会占用计划中要用的引脚是否有限流、上下拉或电平转换。第七机械和排针。排针引脚标注是否与实际网络一致丝印是否清晰电源引脚和地引脚是否分布在方便跳线的地方。这个过程听起来繁琐但非常有用。很多时候原理图网表没有错误但到了 PCB 上才发现某个电容离芯片太远某个晶振走线穿过了电感区域某段 GND 被切割后形成回流问题。原理图负责“连接正确”PCB 负责“物理可靠”两者都要过一遍。6.2 核心板常见现象与排查链路当核心板出现问题时很多人第一反应是怀疑芯片坏了其实大多数问题可以从原理图和 PCB 布局层面找到线索。我把自己常遇到的几个现象整理成了一张排查表。现象可能原因排查顺序上电后 3.3V 被拉低LDO 选型电流不足、负载短路、USB 5V 和外部 5V 同时输入先断开负载量 3.3V 是否恢复再检查是否有器件焊反或短路程序下载失败提示连接不上BOOT0 配置不对、SWD 引脚被代码复用、NRST 被拉低、下载线太长或接触不良先按住复位键插入下载器再尝试从系统存储器启动换短杜邦线点灯正常但串口乱码外部晶振频率不对、波特率设置错误、USB 转串口芯片供电不稳示波器量 TXD 波形先降低波特率到 9600 验证进入停机模式功耗仍高USB 转串口芯片、LED、上拉电阻、GPIO 状态未处理找到电源跳线断开外设逐个处理 GPIO 默认电平ADC 采样值跳动VDDA 纹波大、参考电压不稳、地平面回流不畅检查 VDDA 与 VDD 的磁珠/0 欧连接加滤波电容量参考电压USB CDC 识别不到D/D- 接反、上拉电阻缺失、晶振精度不足、USB 座子虚焊检查 USB 座子四个引脚网络用示波器看 D 是否被拉高PWM 输出频率不对GPIO 复用配置错误、DMA 搬运数据不及时、时钟树配置不对先用固定占空比测试再加 DMA用逻辑分析仪看波形这张表不是万能答案但它说明了排查顺序先看现象再看原理图和供电再看引脚配置最后才换芯片。6.3 自己画最小系统板时哪些能抄哪些不能照搬很多朋友画自己的 STM32F103 最小系统板时会直接抄核心板原理图。简单核心板电路确实可以抄但有几点要注意。能抄的是最小系统框架3.3V 电源、去耦电容、8MHz 晶振加负载电容、复位按键、BOOT 跳线、SWD 下载口。这些是 STM32F103 正常运行的基本条件绝大多数核心板原理图都能作为起点。不能直接照搬的包括USB 部分的阻抗和 ESD核心板通常为了省成本只画一个 USB 座不强调差分走线和保护器件产品化时要补上。模拟电源布局核心板面积小VDDA 处理可能比较简单但 ADC 采集精度要求高时不能让模拟地线和数字地乱铺。电源输入范围核心板只考虑 USB 5V如果你的系统要用 12V 或 24V 工业电源LDO 和 DCDC 选型完全不同。排针引脚排列核心板排针顺序是给别人插面包板用的不一定符合你的产品接口需求。保护电路核心板很少有防反接、过压保护、TVS 等设计量产板不能省。我建议自己画板时先用你选定的芯片型号官方数据手册核对最小系统的电源、时钟、复位和启动要求再参考核心板原理图画一版不要直接复制网上一份不知道来源的原理图。尤其要注意不同封装、不同容量、不同型号的 F103 引脚数量和电源引脚分布不同C8T6、RCT6、ZET6 虽然内核和外设几乎一样但封装引脚不能混用。最后再提醒一句分析原理图的核心目的不是把每个标号都背下来而是建立“网络从哪里来到哪里去”的判断力。STM32F103 核心板原理图看懂了你后续看 STM32F407、GD32、ESP32 最小系统板都会轻松很多因为电源、晶振、复位、下载这些高速模块的本质逻辑是相似的。先把这张最简单的图吃透再跑复杂项目后面踩的坑会少很多。