
玩STM32的第一步大部分人都是买一块现成的核心板比如正点原子Mini板、野火指南者或者江科大课程里配套的那块板子。但跟着教程敲代码敲到一半总会冒出一个念头这板子上为什么要有8M晶振为什么BOOT0要接个电阻拉低为什么AMS1117旁边要堆那么多电容与其一块板子用到毕业还不明不白不如自己动手画一块STM32最小系统板。而画板工具我推荐直接用嘉立创EDA专业版——免费、元件库全、还能直接对接嘉立创打样从画原理图到拿到PCB一条龙搞定。这篇博文就是我的完整实战记录从新建工程开始到原理图设计、PCB布局布线、DRC检查最后到下单打样每一个步骤都写清楚我为什么这么做、踩过哪些坑。内容主要面向刚学STM32、想自己做一块能跑起来的最小系统板的同学。整个流程走完你会发现“画板子”这件事没有想象中那么玄乎它就是把芯片手册里的要求变成一块物理电路板而已。1. 项目准备与整体设计思路1.1 为什么选STM32F103C8T6这块芯片做最小系统板芯片选型是第一步。F103C8T6这个型号几乎是新手绕不开的价格便宜散片几块钱一片即使焊废了也不心疼引脚够用LQFP48封装37个IO口USART、SPI、I2C、ADC、定时器全部齐全学习阶段的绝大多数实验都能覆盖资料极多正点原子、野火、江科大的教程都是以F1系列为主线讲的遇到问题随便一搜就有答案。它最香的一点是“好买”。立创商城、淘宝都能轻松买到不像某些冷门芯片下单之后等半个月还没货。对新手来说一个东西能不能快速上手往往比它性能强不强更重要。这里顺便解决一个很多人困惑的问题C8T6、CBT6、RCT6有什么区别。它们的内核完全相同区别主要在Flash容量和引脚数。C8T6是64KB Flash、20KB RAM48脚CBT6是128KB Flash引脚和C8T6一样RCT6是256KB Flash、64脚。对入门来说C8T6足够跑完所有例程就算以后想玩RTOS、LVGL这类稍重的东西64KB Flash也基本够用。如果你是照着某些教程买芯片记得看清型号后缀别买成C6T6之类的老型号烧录配置对不上会很折腾。1.2 为什么用嘉立创EDA专业版而不是AD或Kicad选工具这件事我吃过亏。最早用AD画图虽然功能强大但库管理是个大坑要自己画封装、找库、更新库一套流程下来还没开始画原理图就劝退了。Kicad免费且开源但元件库需要从各种渠道自己收集封装对新手同样不友好。嘉立创EDA专业版解决了我最痛的点元件库里大部分常用元件都带封装而且是和立创商城的实物一一对应的。搜索“STM32F103C8T6”能直接找到带LQFP48封装的元件原理图符号和PCB封装都是现成的不用自己画。更关键的是它和嘉立创打样深度绑定画完图一键就能生成下单需要的文件新用户还有免费打样券成本几乎为零。专业版对比网页版我更推荐用专业版客户端。它的操作习惯比较接近AD界面干净运行也稳定处理稍微复杂一点的板子不会卡顿。如果你以前用过AD切到专业版基本没什么学习成本。1.3 新建工程前需要准备哪些材料在正式动手画图之前有几样东西建议先准备好。首先是芯片的数据手册和参考设计。STM32F103C8T6的数据手册DS5319里有一张“最小系统推荐电路”的图电源、晶振、复位、BOOT怎么接官网上写得明明白白。看不懂的地方就对着参考手册看这是最权威的依据。其次是参考原理图。嘉立创开源广场上有很多现成的STM32最小系统板工程建议下载几块人气高的板子先看别人怎么画的再动自己的手。注意参考不是照抄而是理解每个元件的作用之后按自己的需求重新设计。比如别人用的是Micro USB座你想用Type-C就要把对应的连接器换掉同时注意引脚定义不同。再就是准备好物料清单。画图之前先列一张BOM表芯片、晶振、电容、电阻、LDO、LED、排针一个个写上型号和数量。别小看这一步很多新手画到一半发现某个封装选错了就是因为没有提前确认实物。我的习惯是打开立创商城把每个元件的封装截图存下来画图的时候对照着放。1.4 最小系统板的核心结构拆解“最小系统”这四个字听起来高大上其实拆开来看就五部分电源电路、时钟电路、复位电路、启动配置电路、下载调试电路。电源电路负责把外部5V电压转换成芯片需要的3.3V包括USB座或排针输入、LDO稳压、滤波电容、去耦电容。时钟电路负责给芯片提供工作时钟外部晶振加两个负载电容是最常见的接法。复位电路保证芯片能够正常上电复位手动复位按钮按下去能让程序从头跑。启动配置电路通过BOOT0、BOOT1引脚的电平选择芯片从哪里启动。下载调试电路则是烧录程序的通道我用的是SWD接口四根线就能搞定。这五部分就像人的“吃喝拉撒”一样缺一样芯片就跑不起来。理解了这个结构后面画原理图就有了清晰的脉络每一步都知道自己在做什么而不是机械地连线。2. 原理图设计与核心电路拆解2.1 电源电路AMS1117-3.3与电容搭配的细节电源是整块板子的命脉电源设计不合理后面所有电路都是白搭。我的方案是用USB的5V作为输入经过SS14肖特基二极管防反接再进AMS1117-3.3稳压输出3.3V。很多人不理解为什么要加SS14。USB线和电源适配器在实际使用中正负极接反是常有的事一旦接反后级电路直接烧一片。SS14是个肖特基二极管正向导通压降只有0.3V左右如果输入电压接反二极管反向截止后级电路就得到了保护。成本几分钱的东西换来的是整块板子的安全这笔账怎么算都划算。AMS1117的输入输出电容需要注意搭配。输入端接10uF电解电容加0.1uF陶瓷电容输出端同样接10uF加0.1uF。10uF提供低频储能0.1uF滤除高频噪声两种电容配合使用效果最好。有人问“AMS1117把钽电容换成陶瓷电容对STM32有影响吗”我实际测试过只要容值足够、位置放对用陶瓷电容完全没问题。陶瓷电容ESR低瞬态响应反而更好。唯一要注意的是陶瓷电容受温度和直流偏压影响容值会变小所以选10uF比较保险别选太小的。这里有一个新手最容易忽略的细节STM32F103C8T6的VCAP引脚必须接一个2.2uF电容到地。VCAP是芯片内部1.8V稳压器的输出引脚这个电容是保证稳压器稳定工作的关键不接的话芯片可能完全无法启动。很多第一次做板子的人画完原理图检查了好几遍VDD和GND结果还是上电没反应最后发现是VCAP漏接了。这块电容一定要画上而且位置要尽量靠近VCAP引脚。在3.3V电源网络的末端也就是所有的VDD引脚旁边还要各放一个0.1uF去耦电容。去耦电容的作用是给芯片引脚提供瞬态电流同时滤除电源上的高频噪声。我的做法是先在原理图里给每个VDD引脚都分配一个去耦电容再在PCB布局时把它们放在对应的引脚旁边确保“电容到引脚”的走线尽可能短。电源指示灯我加在了3.3V输出处用一个LED串联一个1k电阻接地。LED正极接3.3V负极经电阻到地上电后灯亮一眼就能看出电源是否正常。调试的时候这个指示灯特别有用板子一上电就知道故障在电源之前还是之后。2.2 时钟电路8M晶振和两个负载电容的参数选择STM32F103C8T6内部有一个HSI振荡器频率是8MHz芯片没配置外部晶振时也能跑。但HSI精度不高而且它的频率误差会直接影响串口波特率、定时器定时时间等关键参数。为了保证系统时钟准确必须外接一个8MHz晶振作为HSE主时钟。晶振电路看起来简单——一个晶振两个电容但参数选不对电路就是不起振。8MHz无源晶振两个引脚分别接OSC_IN和OSC_OUT每个引脚各接一个负载电容到地。负载电容的值一般选20pF到22pF具体数值要看晶振厂家的规格书大多数8MHz贴片晶振推荐20pF或22pF。如果手头没有合适的20pF最通用。负载电容不是越大越好。电容太大会让晶振起振变慢甚至停振太小则频率偏高频率偏差会影响串口通信的稳定性。网上很多教程说“随便接两个电容就行”这是不负责任的说法。虽然大部分情况下晶振都会工作但频率精度达不到标称值做波特率要求高的通信实验时就会出问题。晶振的布局也很关键。在PCB阶段晶振要尽量靠近OSC_IN和OSC_OUT引脚晶振下方不要走信号线周围最好有一圈地过孔做隔离。高频信号路径越短受到的干扰越少。我第一次画板时把晶振放在离芯片很远的地方结果程序跑一段时间就死机后来把晶振挪到芯片旁边问题就消失了。2.3 复位电路与BOOT启动配置按键、电阻、电容各司其职STM32的NRST引脚是低电平复位芯片内部已经有一个上拉电阻外部电路的作用只是提供一个可靠的复位信号。我的接法是在NRST引脚上接一个10k电阻到3.3V再接一个0.1uF电容到地同时并一个轻触按键到地。这个电路的工作原理是正常工作时10k上拉电阻把NRST拉到高电平芯片正常运行按下按键时NRST被拉到地产生低电平复位信号芯片复位松开按键后电容通过上拉电阻充电NRST电平缓慢上升保证复位信号足够宽。如果不加电容按下又松开按键时可能会产生抖动导致复位不可靠。BOOT配置很多人搞混我在这里详细说一下。BOOT0和BOOT1两个引脚的电平组合决定了芯片复位后从哪里开始执行代码。表格整理如下BOOT0BOOT1启动模式说明0X主Flash启动正常运行程序最常用10系统存储器启动用于串口ISP下载程序11SRAM启动调试用一般不涉及最小系统板只需要从主Flash启动所以BOOT0和BOOT1都要拉低。我在两个引脚上各接了一个10k下拉电阻。有些设计图只对BOOT0下拉BOOT1悬空因为BOOT0为0时BOOT1电平无关紧要。但出于稳定考虑两个脚都下拉最稳妥避免受到周边电路干扰产生误触发。如果你以后想用串口ISP下载程序就需要一个BOOT0的选择跳线或拨码开关正常运行时BOOT0接地需要ISP下载时把BOOT0接高电平复位后芯片进入系统存储器就可以通过USART1下载代码了。这次最小系统板我预留了一个BOOT0的跳线焊盘方便以后扩展。2.4 下载调试接口SWD四线接线与JTAG取舍烧录调试是开发过程中使用频率最高的功能接口设计得好不好直接决定你每次调试省不省心。我对比过两种常见的调试下载方式后坚定选择了SWD接口而不是JTAG。JTAG需要占用5个引脚TMS、TCK、TDI、TDO、nTRST或nSRST在F103C8T6这种引脚不算多的芯片上占用的IO数量有点心疼。SWD只需要两根线加电源和地即SWDIO和SWCLK下载速度也能达到几MHz对绝大多数开发场景完全够用。我这次在板上设计的是5Pin SWD接口3.3V、GND、SWDIO、SWCLK、NRST。多引出NRST是为了在某些情况下方便调试器控制复位虽然四线也能用但五线更稳定。F103C8T6的SWDIO和SWCLK对应的是PA13和PA14。这两个引脚默认就是调试功能不需要额外初始化接上ST-Link就能识别芯片。这里提醒一句调试接口的排针要标注丝印插线之前确认好方向我第一次插反了把ST-Link的3.3V接到了地还好ST-Link有保护不然就跟着一起烧了。2.5 LED指示电路与排针扩展自检和联调的小帮手最小系统板上至少要留一个LED这是调试效率提升的关键。程序写完先点灯灯亮了说明基本系统没问题然后再加复杂功能。没有LED的话程序是否跑起来全靠猜效率非常低。用户LED我接到了PC13引脚。PC13在F103C8T6上连接着一个RTC备份区域的电源很多核心板都把它引出做了板载LED。LED接法注意要串联限流电阻阻值330欧姆到1k欧姆都可以。我习惯用1k电流大约3mA左右亮度足够肉眼观察功耗也低。接法有两种方式一是LED正极接3.3V负极通过电阻接PC13GPIO输出低电平点亮二是LED正极通过电阻接PC13负极接地GPIO输出高电平点亮。我选择了第一种这样复位时GPIO为高阻状态LED不会点亮逻辑更清晰。扩展排针是核心板的灵魂。把F103C8T6的所有引脚都引到板边的2.54mm排针上左右各一排这样焊接完成的最小系统板就是一个“核心板”以后做项目时拿杜邦线往面包板上一插就能用。排针旁边必须标注引脚名称的丝印不然每次接线都要拿万用表对着原理图找引脚非常浪费时间。2.6 原理图绘制完整流程实操记录新建工程后我习惯先把图纸参数设置好图纸大小选A4显示网格选1.27mm50mil光标选大十字。然后打开元件库面板开始放置元件。第一步放主控。搜索“STM32F103C8T6”选立创商城编号带LQFP48封装的封装确认引脚定义和芯片手册一致后放下去。第二步放电源部分USB座、SS14、AMS1117、电容、电阻、LED依次放置。第三步放晶振、复位、BOOT电路第四步放SWD接口和排针。元件之间的连线我倾向于用网络标签而不是直接画线。比如“3V3”这个网络标签电源输出端标一次所有VDD引脚标一次不用把线拉得到处都是原理图看起来清爽很多。用网络标签时要注意命名一致打错一个字母网络就断开了DRC检查时会有未连接报错。原理图画完后执行“检查→设计规则检查”重点看有没有单端网络、未连接引脚、VCC和GND是否短路。有个小技巧ERC报“引脚悬空”的警告不一定需要全部处理F103C8T6的某些引脚内部有上下拉悬空是允许的但“VDD没接电源”“GND没接地”这种错误必须全部消除。3. PCB布局布线实战把原理图变成一块真正的板子3.1 从原理图生成PCB的第一步设置原理图检查无误后点击“设计→原理图转PCB”就能生成一张空的PCB。先设置板框我这次用的是60mm×40mm的长方形2.54mm排针正好分布在左右两侧中间留给芯片和电源电路。嘉立创打样有一个很诱人的优惠尺寸在5cm×5cm以内的板子通常最便宜新用户甚至能免费打样。如果你的预算有限可以把板子压缩到4.8cm×3.5cm左右成本会低很多。但我不建议为了省打样费把板子挤得太满——留出布线空间焊接和调试都会舒服很多。板框画好后先加四个角的安装孔直径3mm的螺丝孔是通用选择孔边距板边缘至少1.5mm防止开孔时破板。然后设置布线规则最小线宽6mil、最小间距6mil、过孔外径0.6mm、孔径0.3mm这些都是嘉立创工艺能力范围内很稳定的参数既能满足普通信号线的需求又不容易超出制板厂的能力。电源网络的线宽单独设置成12mil以上确保载流能力。3.2 布局思路从核心器件开始摆放布局是PCB设计中最需要耐心的一步直接决定后面的布线质量和板子的稳定性。我的布局顺序是“先核心后外围先小件后大件”。STM32F103C8T6放在板子正中央LQFP48的1脚方向和排针的方向保持一致方便识别。放芯片之前先把原理图中所有元件都调出来按功能分组摆放在PCB上电源电路放在USB座附近晶振放在芯片OSC引脚旁边去耦电容放在芯片的VDD引脚周围排针分布在两侧。去耦电容的摆放要遵循一个黄金准则电容和引脚之间的走线越短越好。电源从3.3V网络过来要先经过电容再进入VDD引脚这样电容才能发挥滤波作用。如果电容离引脚远了电源线上的噪声就有一部分绕开了电容直接进入芯片。我有一个真实的教训第一次画板把所有元件排列得整整齐齐电容排成一排看着非常舒服。但实际跑起来程序偶尔不稳定用示波器一测VDD引脚上的纹波明显偏大。后来把电容都挪到芯片引脚正下方或紧邻的位置纹波立刻小了一个数量级。晶振的位置同样重要。8M晶振要尽可能靠近OSC_IN和OSC_OUT晶振下方的走线层尽量不要铺设其他信号线不然信号串扰会影响时钟稳定性。我还在晶振周围打了一圈地过孔形成一个简易的“法拉第笼”实测下来抗干扰能力强了不少。3.3 布线顺序与电源地网络的特别处理布线是有优先级的我的顺序是电源→地→关键信号→普通信号。电源和地先安排好了后面信号布线才有清晰的路径可走。5V和3.3V网络我设置了15mil线宽比普通信号线宽出一倍还多。如果PCB面积允许甚至可以在3.3V网络的局部铺一小块铜皮进一步降低电阻不过对于最小系统板这种小电流应用15mil线宽已经完全够用了。GND网络我习惯不在布线阶段一条条连而是等所有信号线走完之后统一用覆铜处理。底层大面积覆铜接GND可以让地网络拥有最低的阻抗还能起到屏蔽作用。但要注意不能完全依赖覆铜——芯片的每个GND引脚旁边都要打一个过孔连接到地铜皮这些过孔要主动放置不能等覆铜时让软件自动处理。我的方法是信号布线时每经过一个GND引脚就放一个0.3mm/0.6mm的过孔把引脚和底层的GND铜皮连起来这样地回路最短。普通信号线用8mil即可相比6mil的极限值留了一些余量降低了制板出错的风险。走线尽量用45度斜角不要用90度直角直角走线在转角处会产生阻抗突变和电磁辐射虽然F103这种72MHz主频的板子影响不大但养成好习惯总没错。上图中还有一个经验分享排针周围要保留足够的走线空间不然焊接排针时锡桥容易把相邻引脚短路尤其是间距密集的排针。另外SWD接口的四根线最好走线等长几毫米的差距对F103来说影响可以忽略但走线整齐了修图也好修。3.4 底层覆铜与丝印标注的后期处理所有信号线走完后就到了PCB设计后期最有成就感的阶段——覆铜和丝印。在PCB编辑器的底层放置一块覆铜区域网络选择GND。覆铜间距设为0.3mm左右太近会导致制板时绝缘间距不足太远则覆铜的屏蔽效果变差。覆铜的方式选“网格覆铜”还是“实心覆铜”对于最小系统板我推荐实心覆铜工艺成熟散热也好。网格覆铜在高频电路里能减少涡流损耗但我们这个场景用不上。覆铜完成后再做一个步骤在芯片下方的覆铜区域打几个“缝合孔”让顶层和底层的GND通过过孔连接起来形成连续的地平面。这些过孔之间的距离不用很均匀立创EDA有自动缝合孔的功能甚至能帮你批量放置。丝印标注是很多人忽略的地方。好的丝印标注能极大提升调试效率。我的习惯是至少标注以下内容板子的名称和版本号、3.3V和GND标识、SWD接口每个引脚的功能名、BOOT0跳线的说明、晶振旁边的频率值“8MHz”。丝印的位置不能放到焊盘上不然焊接时会被锡覆盖也影响外观。放好后用“3D预览”功能看一眼丝印是否清晰可读。4. 从DRC检查到提交打板最后一道防线的完整流程4.1 DRC检查怎么做才能查得又全又不漏DRC设计规则检查是PCB设计流程中最后一道自动化的质量防线。它就像“作文交稿前的错别字检查”原理图里看起来连接好的网络在PCB上可能因为间距不够、线宽不足、短路等问题最终变成废板。DRC的目的就是把这些问题拦截在制板之前。在嘉立创EDA专业版里点击“设计→设计规则检查”先看规则设置。规则设置有几个关键项间距规则安全间距、线宽规则最小和最大线宽、过孔规则外径和孔径、短路检测同一网络重复连接或不同网络被错误连接。初学者建议先按软件默认规则检查一遍再对照制板厂的工艺能力手动调整。我的做法是设置两套规则一套是全局规则最小线宽6mil、最小间距6mil另一套是网络规则把电源网络5V、3V3和GND单独设成最小线宽12mil。这样即使后面的布线偶有疏漏DRC也能精准地把错误暴露出来。运行DRC之后软件会列出所有错误。我的处理流程是先把错误按类型分组看一遍如果80%以上的错误是同一个原因导致的比如所有丝印都压在焊盘上就先在源头批量修改再重新跑一次DRC直到剩余错误越来越少。4.2 常见DRC错误类型与实际处理对照表这里把我在整个画板过程中遇到过的DRC错误类型整理成了一张速查表遇到类似问题可以对照着看DRC错误提示可能原因解决办法Unconnected Wire/Net原理图中网络标签拼写不一致或PCB上某引脚未连到网络回到原理图检查网络标签重新执行“更新PCB”Overlap/Metal Sliver两个走线或焊盘之间的距离小于安全间距调整线距或者把某个焊盘的封装位置微调Silkscreen Overlap丝印字符压在焊盘或另一个丝印上移动丝印文本位置避免覆盖焊盘Missing Solder Mask Sliver相邻焊盘之间阻焊桥宽度不足焊接时可能连锡增大焊盘间距或检查封装的焊盘尺寸Short Circuit不同网络被覆铜或走线意外连接用“网络高亮”功能定位短路位置检查覆铜边界和过孔位置Unrouted Net某根线没有走完或过孔选择错误布线模式下按R键查看未布线网络第一次跑DRC时看到一堆红色报错很容易慌。我的建议是先保存当前工程然后从“Short Circuit”这类致命错误开始处理——这类错误会让板子直接短路必须清零。其他如丝印重叠这类“看起来不致命”的问题也不能放过毕竟丝印压住焊盘会影响焊接做出来的板子不够专业。4.3 下单前的最终检查项DRC检查全部通过后别急着下单我再带大家过一遍我在交付制造之前必查的项目清单第一确认板子尺寸。嘉立创打样对板材利用率有要求比如50mm×50mm以内有不同的收费标准。我的60mm×40mm尺寸在常规打样价格区间内没有额外加价。第二确认层数和板厚。最小系统板用双面板就够板厚默认1.6mm铜厚1oz约35um这些都是标准工艺。如果你需要做高功率电路才考虑2oz铜厚。第三确认阻焊颜色。打样选用绿色阻焊最便宜也最常见如果你要炫酷可以选蓝色黑色费用会稍微高一些。我选了绿色方便后续维修时配合放大镜观察走线。第四确认表面工艺。喷锡HASL是最经济的工艺适合大多数实验板沉金ENIG工艺更平整、抗氧化性更好适合经常插拔排针或HID设备。最小系统板用喷锡足够。第五生成BOM表并核对元件库存。原理图菜单里选择“导出BOM”用Excel打开后挨个核对元件的数量、型号、封装、采购编号。我到这一步会直接在立创商城搜索每个料号确认有库存再下单避免PCB到了芯片还在路上。第六预览3D效果图。嘉立创EDA专业版的3D预览功能很强大可以旋转视角检查元件高度是否冲突比如电解电容太高会不会压到排针USB座底部的焊盘是否有内层干涉。我每次下单前都会花两分钟转一圈至少能避免一半的“看起来没问题”才能上板的情况。4.4 一键下单与Gerber文件生成嘉立创EDA专业版和嘉立创打样是打通的PCB绘制完成后可以直接在软件里点击“下单”按钮它会自动生成Gerber文件和生产资料然后跳转到嘉立创下单小助手完成订单。如果你想把板子发到其他制板厂只需要导出Gerber文件和钻孔文件即可。第一次下单时你会发现需要填写的信息比想象中多板材类型FR4、板厚、层数、阻焊颜色、丝印颜色、铜厚、表面工艺、数量。作为个人DIY项目我一般选FR4、1.6mm、双面、喷锡数量选5片。下单后大约3到5天就能收到PCB到时候焊接又是一项充满成就感的体力活。5. 常见问题与排查技巧实录从打样回来到点亮第一行代码5.1 焊接与首次上电的注意事项打样回来的PCB先别急着把所有元件都焊上去。我的习惯是分模块焊接分模块测试。第一步只焊电源部分USB座、SS14、AMS1117、电源电容和电源指示LED。上电后先测AMS1117输出是不是3.3V再用万用表量一下3.3V和GND之间有没有短路。确认电源正常后再焊STM32芯片和其他元件。LQFP48封装的芯片焊接即使是新手也不用害怕用拖焊法就能完成先在芯片的一边引脚上涂助焊剂用烙铁带上一点点锡从第一个引脚开始拖着走让焊锡自然填充引脚和焊盘之间的缝隙多余的锡会被烙铁带走。四边都拖一遍后用松香和酒精把板面清理干净。我就是用这个方法焊好了第一块F103C8T6。上电后如果发现芯片发烫别犹豫立刻断电。发烫的原因大概率是电源短路或者芯片引脚焊桥。先用万用表量3.3V和GND之间的阻值如果接近0说明短路如果不是重点检查芯片是否存在相邻引脚被锡桥短路的情况用助焊剂和烙铁重新清理一遍。电源指示灯亮但芯片没反应的排查顺序是量VCAP引脚的电压正常应该在1.8V左右量VDD是否有3.3V量NRST是否为高电平检查BOOT0是否为低电平。四项都正常但芯片还是没动静大概率是芯片本身焊接出了问题用热风枪重新焊接一次。5.2 下载程序时常见的几个“卡死”现象我的第一块板子焊接完成后下载程序时遇到一个特别打击人的问题ST-Link连接不上。检查了半天最后发现是SWDIO和SWCLK两根线接反了。这里也提醒大家——PA13是SWDIOPA14是SWCLK接反后调试器必然无法识别。另一个很典型的问题是“能识别芯片但下载后不运行”。这种情况十有八九是软件配置问题Keil5里选择了错误的芯片型号或者Flash容量设置不正确。F103C8T6选“STM32F103C8”即可不要选成CBT6等型号。下载器选择ST-Link后Settings里把Speed调低一点比如4MHz有时候速度过快会导致连接不稳定。还有一个极其经典的问题程序里配置了外部晶振但晶振没焊或者电容不对导致程序一运行就卡死在时钟初始化部分。很多网友反馈STM32延时函数delay卡死大部分情况就是外部时钟没起来。我的判断方法是先用默认HSI时钟跑一个点灯程序只要能正常闪烁说明芯片和下载链路都没问题再把外部晶振程序烧录进去如果卡死就重点检查晶振是否起振、负载电容是否焊接牢固。调试过程中我还会留意一个细节连接ST-Link时SWD接口的3.3V引脚要不要接如果板子已经用USB供电可以不接调试器的3.3V避免两个电源回路打架。如果是电池供电的便携设备调试器就要同时供电。这个细节能帮你排除不少“连不上”的怪问题。5.3 关于“嘉立创EDA专业版删除工程”这类操作的小提醒有的新手第一次使用嘉立创EDA专业版时不太熟悉工程管理。比如不小心创建了一个测试工程想删掉却到处找不到“删除”按钮。其实很简单在左侧工程面板里右键点击工程名称选择“删除工程”即可。如果只是想把工程文件改个名字直接右键重命名就行不要直接在本地文件管理器里乱删因为工程文件之间有关联引用。顺带说一句很多人的一个错误习惯一个工程画完板子后下次画新板子就在旧工程里改导致最后PCB和原理图完全对不上。我建议每做一块板子都新建一个工程工程名称用“项目名_版本号_日期”的格式命名比如“STM32_MinSys_V1.0_20250108”。这样即使以后画了N个版本也能从文件名快速找到需要的版本。5.4 完成第一块最小系统板之后的扩展方向第一块最小系统板成功跑起来之后你会发现“画板子”的门槛已经被踏平了接下来可以考虑做更实用的扩展板。目前这块板子预留了BOOT0跳线后续可以通过ISP串口下载程序只需要外接一个USB转串口模块把TXD和RXD接到USART1的PA9和PA10即可。如果玩到OTA升级F103C8T6的64KB Flash虽然不算大但通过合理的分区规划完全可以实现Bootloader加App的升级方案。电源方面有一个常见问题如果用AMS1117-3.3输入电压最低要4.3V才能稳定输出3.3V这就不适合直接接3.7V锂电池。如果以后想做电池供电的便携项目建议换XC6206或者ME6211这类低压差LDO输入2.5V以上就能输出稳定的3.3V。画第一块板时把电源部分设计得灵活一点以后复用的时候能省很多事。接口方面如果想把这块最小系统板当真正常用的核心板建议下次打样时把UART、I2C、SPI、ADC口都通过排针引到板子两侧方便搭面包板。我现在的做法是直接画了一个“母版”底板把最小系统板插上去底板扩展到各类传感器、驱动器接口项目开发效率一下子高了很多。最后分享几个实际操作的小经验从我第一次画STM32最小系统板到现在前后做了好几版个人最大的变化是不再追求“一次成功”而是接受“打样回来慢慢调试”这件事。第一次画板功能跑通了但电源纹波大、丝印排得乱后期调试时没少吃苦头第二版开始规划好布局把测试点、丝印、去耦电容都做好了体验好了不少。如果你正打算自己画第一块板子我建议你先按这篇文章把基础版本做出来跑通点灯、串口、定时器这些基本实验再从“能跑”一步步做到“稳定”。画板子这件事技术门槛不高但处处都是细节。遇到问题不要硬扛把现象描述清楚去搜一搜通常早就有人遇到过了。等你的第一块板子点亮的第一颗LED亮起来时那种成就感绝对不是买一块现成核心板能比的。