下面介绍三种方法
1.USB转TTL串口的烧录方法(烧录工具)
2.SWD的烧录方法(STLink和JLink)
3.USB转TTL串口的烧录方法(Arduion)
hex文件的生成可以用keil或Arduion
首先购买的开发板要支持USB串口下载功能
## STM32-FlyMcu直接用STM32-FlyMcu软件工具进行烧录
通过usb连接开发板,无需短接
选择串口,选择文件,开始编程
STM32F103C6T6 依赖于芯片在出厂时预先烧写的bootloader程序
未知问题:读FLASH失败 一共32KB 可能已经读完了
已读出31KB,进度24%,耗时43547毫秒
读FLASH失败!!!
## STMFlashLoader Demo硬件 boot0(在SWD那里)接3.3v boot1(PB2)接GND
usb连接
一直下一步
Download to device选择要下载的文件 选文件的时候记得选格式 否则不显示
下载成功后拔掉短接 按复位键
每次都要拔插不方便
# STM32 ST-LINKUtility需要STLink
sw模式下 STLink
1管脚 VCC
7管脚 SWIO
9管脚 SWCLK
20管脚 GND
STLink貌似供电不足 需要usb额外供电
而且只连接了SWIO和SWCLK
硬件正确连接后
点击左上角插头表示连接stlink
下面可以查看指定位置的数据
右边可以看见芯片信息
点击文档按钮
选择hex文件烧录
起始位置为0x08000000
出现“Verification...OK”,说明下载成功
# Keil下载芯片支持包
Pack Installer
查找 STM32F103C6等待下载
## STLink硬件连接
sw模式下 STLink
1管脚 VCC
7管脚 SWIO
9管脚 SWCLK
20管脚 GND
配置STLink
https://blog.csdn.net/kebidaixu/article/details/125172873
几个注意的地方
若是在Add中没有
下面文件夹下的.FLM文件
`C:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.0\Flash`
复制到
`C:\Keil_v5\ARM\Flash`
文件夹中如果也没有
官网下载对应芯片的flash文件
https://www.keil.com/dd2/pack/#!#eula-container
## JLink硬件连接
sw模式下 STLink
1管脚 VCC
7管脚 SWIO
9管脚 SWCLK
20管脚 GND
一定要接VCC和GND否则无法烧录成功
在上面配置的基础需要修改和注意的地方
硬件连接
sw模式下 STLink
1管脚 VCC
7管脚 SWIO
9管脚 SWCLK
20管脚 GND
下载程序时需要短接引脚
boot0(在SWD那里)接3.3v boot1(PB2)接GND
连接USB
## 第一首先要增加对stm32开发板的支持
启动aduinoide 在 工具>开发板>开发板管理器的界面中搜索 Arduino SAM Boards
选择 Arduino SAM Boards(32-bits ARM Cortex-M3)开发板的项目安装
(安装完成后没有变化)
## 第二打开 https://github.com/rogerclarkmelbourne/Arduino_STM32
下载库包并解压到ARDUINO IDE安装目录的hardware文件夹下
## 第三重启ide
工具>开发板 按照自己板子芯片型号选择开发板系列,本文是Generic STM32F103C series
工具>Upload method :"Serial" 上传方式选择串口
工具>端口 选择好自己对应的串口号
## 其他连接硬件
usbttl的rx和tx分别接到开发板的 Tx Rx上
boot0接3.3
boot1接GND
## 测试程序示例>A_STM32_Examples>Digital>Blink
PB1连接一个LED灯
其他板子查看自己板子的管脚定义
上面种种烧录方法
总结只有两个
1.USB转TTL串口烧录
2.SWD烧录
USB转TTL串口烧录,单片机内有一段预先内置的bootloader程序可以与电脑UART串口通信(芯片引脚tx rx),通过短接的方式触发进入bootloader,电脑将程序传给单片机,单片机bootloader程序将接收到的程序放在指定运行位置。(为什么STM32-FlyMcu不需要短接,可能是通过信号触发的,与DTR、RTS有关)
SWD烧录,芯片硬件上支持(寄存器边界扫描技术),SWD用于调试芯片程序调试的接口。
断点调试
最终建议使用JLink可下载可调试,而且还支持JTAG调试模式
路由