实践/固件编程

STM32F103C8T6怎么烧录?SWD和串口两条路避坑

固件编程 2026-10-11 22:57:31 5阅读 6讨论 举报

拿到第一块STM32F103C8T6最小系统板的人,十有八九会卡在同一个地方:程序在电脑上写好了半天就是烧不进去,或者烧完板上灯不亮。这事不难,坑却不少。今天把SWD和串口两种烧录路子一次讲清楚,新手照着做基本一遍过。

先搞明白两件事

烧录前先看两个东西。一个是BOOT0跳线帽,它决定芯片从哪启动。想从FLASH正常跑程序,BOOT0要接0也就是GND;想进串口烧录模式,BOOT0接1、BOOT1接0。另一个是板子上的用户LED,F103C8T6最小系统板一般连在PC13引脚,低电平点亮,用推挽或开漏接法。但不少第三方板子的LED可能在PB12或者PA15,动手前先翻一下原理图,别想当然。

方法一:SWD四根线,最省心的路子

SWD模式只接四根线:ST-Link的3.3V接板子的3.3V,DIO接SWDIO,CLK接SWCLK,GND接GND。BOOT0保持接0就行。接好后打开Keil,在Debug设置里把Use选成ST-Link Debugger,点Settings能看到识别出芯片说明就通了。编译通过直接点下载,程序就进去了。

有个细节最容易坑人:下载完板上灯不亮。多半是Keil里没勾Flash Download的Reset and Run,程序烧进去却不自动复位跑起来,手动按一下Reset才活。另外烧完程序不自动运行,去Pack页面把Enable那个选项取消勾选就行。

方法二:串口下载,成本最低

手里没有ST-Link也不打紧,一条USB转TTL的CH340模块就能烧。先把BOOT0接1、BOOT1接0进烧录模式;模块的TXD接板子的PA10也就是USART1_RX,RXD接PA9,线是交叉的,GND接GND。打开FlyMcu,选对串口号,波特率别超过115200,加载编译出的hex文件,勾上编程前重装文件,点开始编程,再按一下板子的Reset让它进BootLoader。烧完把BOOT0拨回0,按Reset,程序就正常跑了。

最容易翻车的几个坑

第一,RX和TX接反了,三根线一根都别省,模块供电得正常。第二,USB转TTL模块要选对,别拿给STC单片机专用的下载器凑合,那玩意烧F1经常连不上。第三,BOOT0和BOOT1别接错,串口烧录必须是1和0。第四,买板子尽量认准原厂STM的芯片,有些便宜的板用的中科芯克隆芯片,串口烧录可能进不了BootLoader,但SWD方式基本都能通。第五,编译报错或根本没编译出来,先确认Keil装了STM32F1xx的Device Pack。

说句实在话

对刚入门的人来说,SWD四根线比串口省心太多,一次挑对能少踩一半的坑。串口虽然便宜,但跳线帽来回拨、RX TX对线、克隆芯片的兼容问题,够新手磨一阵。总之一句话:想省事选SWD,想省钱再考虑串口,两条腿都能走通,别卡在第一步。

版权声明:
作者:算法老K
链接:https://www.aiddithome.com/p/161b63911816fe.html
来源:固件编程
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
6条评论
线比代码多
1楼 · 6小时前

RX TX接反又BOOT0接反,我那一个晚上全在跟跳线帽较劲。早看到这篇能省三小时。

胶佬憨憨
2楼 · 6小时前

SWD四根线真省心。我有一次PC13怎么都不亮,换一块板子发现LED在PB12上,翻原理图才反应过来。

拆开看看再说
3楼 · 6小时前

克隆芯片那个坑真实,中科芯板子SWD能烧、串口烧不进,不是板子坏了,是BootLoader进不去,搞清楚就不慌。

参数党小马
4楼 · 6小时前

F103C8T6是F1中容量,64K Flash 20K RAM,跑个舵机控制、简单小车完全够用。BOOT0跳线弄明白一次就通了,两种烧录方式都讲透,新手照着做省不少事。

电烙铁爱好者
5楼 · 6小时前

串口烧录那块我踩过大坑,买了个STC专用的USB转TTL,连半天死活进不去BootLoader,后来换CH340秒通。模块选对太重要了。

1 2
本文作者
算法老K
算法老K 实践者
最近更新:2026-10-11 22:57