STM32F103C8T6与ST-Link V2烧录故障排查指南

张开发
2026/4/17 3:11:42 15 分钟阅读

分享文章

STM32F103C8T6与ST-Link V2烧录故障排查指南
1. STM32F103C8T6与ST-Link V2烧录基础准备刚拿到STM32F103C8T6最小系统板时很多新手都会遇到烧录失败的问题。这块蓝色的小板子看起来简单但要想顺利烧录程序硬件连接和软件配置一个都不能少。我刚开始玩STM32的时候也在这个环节踩过不少坑最夸张的一次折腾了整整两天才把程序烧进去。硬件方面你需要准备三样东西STM32F103C8T6最小系统板、ST-Link V2仿真器和四根杜邦线。这里特别提醒市面上有些便宜的ST-Link V2是山寨版我用过好几个版本发现正版和山寨版在稳定性上确实有差别。如果条件允许建议入手正版ST-Link V2能减少很多莫名其妙的故障。软件环境搭建也很关键。Keil MDK-ARM是必备的IDE我目前用的是Keil uVision5 V5.36版本。安装完成后记得要安装对应的STM32F1系列器件支持包。另外STM32 ST-LINK Utility这个小工具也很实用当Keil无法识别设备时可以用它来测试连接状态。2. 硬件连接常见问题排查2.1 电源与接线检查第一次使用ST-Link V2时我最容易犯的错误就是电源问题。STM32F103C8T6需要3.3V供电而ST-Link V2本身可以提供这个电压。但要注意有些最小系统板上有两个供电接口一个是调试接口的3.3V另一个是主电源输入的5V。我遇到过好几次因为只接了调试接口供电导致芯片供电不足的情况。正确的接线方式应该是ST-Link V2的3.3V引脚 → 最小系统板的3.3VST-Link V2的SWDIO → 最小系统板的PA13ST-Link V2的SWCLK → 最小系统板的PA14ST-Link V2的GND → 最小系统板的GND这里有个细节要注意不同厂家的最小系统板SWD接口的位置可能不一样。我手头有两块板子一块的SWD接口在右侧排针另一块却在左侧。接线前一定要查看原理图确认引脚定义。2.2 接触不良排查接触不良是最让人头疼的问题之一。有一次我排查了半天最后发现居然是杜邦线内部断了。这种故障特别隐蔽因为从外表看线是完好的用万用表量也是通的但在传输信号时就会出问题。我的经验是先用手轻轻按压各个连接点看是否能短暂恢复正常换一组新的杜邦线试试检查ST-Link V2的插针是否有氧化尝试用镊子轻轻调整最小系统板排针的间距如果条件允许建议使用带锁紧功能的杜邦线或者直接把线焊在板子上。我后来自己做了一个专用的烧录转接板稳定性提升了很多。3. 软件配置关键点3.1 Keil MDK设置Keil里的配置不当是另一个常见故障点。新建工程时一定要选对器件型号。我有次选了STM32F103C6结果怎么都烧不进去后来发现板子其实是STM32F103C8虽然引脚兼容但Flash大小不一样。Debug选项卡里的设置也很关键选择ST-Link DebuggerPort要选SWMax Clock可以适当调低比如从4MHz降到1MHz勾选Reset and Run选项有时候Keil会抽风明明设置都正确却连不上。这时候可以试试关闭Keil重新打开拔掉ST-Link重新插重启电脑3.2 ST-LINK Utility使用技巧当Keil无法识别设备时STM32 ST-LINK Utility是个很好的备用工具。它能绕过Keil直接与芯片通信帮助判断是Keil配置问题还是硬件问题。使用方法很简单打开软件点Target→Connect如果能连接成功说明硬件没问题可以尝试读取芯片ID、擦除Flash等操作我遇到过几次Keil报错但用Utility能正常连接的情况。这时候通常是Keil的工程配置有问题比如Flash算法选错了。4. Boot模式与复位电路4.1 Boot引脚配置Boot引脚配置不当是我遇到最多的问题。STM32F103C8T6有两个Boot引脚BOOT0和BOOT1。正常运行时BOOT0应该接低电平BOOT1可以悬空。但在烧录遇到问题时可以尝试将BOOT0接高电平按复位键尝试烧录烧录成功后将BOOT0接回低电平再次复位这个方法的原理是BOOT0为高时芯片会从系统存储器启动这时Flash区域没有被占用ST-Link可以正常访问。4.2 复位电路问题有些最小系统板的复位电路设计比较简陋可能导致复位信号不稳定。我遇到过复位电容太小导致芯片无法正常复位的情况。可以尝试手动按住复位按钮不放点击Keil的Download按钮在开始烧录的瞬间松开复位按钮如果这样能成功说明复位电路可能有问题可以考虑加大复位电容的值比如从0.1uF换成1uF。5. 进阶排查技巧5.1 固件升级与驱动ST-Link V2的固件版本也会影响兼容性。我有个老版本的ST-Link在Win10下经常掉线升级固件后就稳定多了。升级步骤下载ST-Link Upgrade工具连接ST-Link V2按照提示升级固件驱动问题也很常见。设备管理器里应该能看到STMicroelectronics STLink dongle如果显示黄色感叹号需要重新安装驱动。5.2 时钟配置检查虽然不常见但错误的时钟配置也可能导致烧录失败。特别是在使用外部晶振时如果代码里配置了HSE但板子上没有晶振芯片可能会卡在启动阶段。临时解决方案修改代码使用内部时钟(HSI)烧录成功后再调试外部晶振6. 特殊案例处理6.1 加密芯片解锁有时候芯片会被意外加密导致无法再次烧录。这时需要先解除保护使用ST-LINK Utility进入Target→Option Bytes取消Read Out Protection全片擦除6.2 低电压问题电池供电的项目中电压不足会导致烧录失败。建议测量板子供电电压确保在2.7-3.6V范围内必要时外接稳压电源7. 替代方案与工具7.1 使用串口烧录当ST-Link实在无法连接时可以尝试串口烧录将BOOT0接高电平使用USB转TTL工具连接PA9(TX)和PA10(RX)使用Flash Loader Demonstrator工具烧录7.2 其他调试工具除了ST-Link V2J-Link和DAP-Link也是不错的选择。J-Link速度更快DAP-Link开源便宜。不过要注意引脚定义可能不同需要转接板。最后提醒一点遇到问题时不要着急按照从简单到复杂的顺序排查电源→接线→接触→配置→Boot模式→复位电路→芯片状态。大多数问题都能在前几步解决。

更多文章