宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

  • 前言
  • ST-Link V2.1简介
  • Mass Storage
  • Virtual COM port
  • Debug Port
  • MCO
  • ST-Link V2.1原理图
  • ST-Link Bootloader程序
  • ST-Link 固件更新
  • 官方ST-Link驱动
  • bin文件生成
  • 资源下载

前言

新的STM32单片机可以通过常见的 J-Link, ST-Link, 开源的DAP-Link等设备下载程序, 淘宝搜索STM32下载器出来各种各样的玩意:

ST-Link V2.1 制作使用-风君子博客

都是可以用的, 大的贵的可能耐用, 但有官方维护持续更新的才是有灵魂的, ST-Link V2.1是ST官方推出的新的固件, 需要在特定硬件下才能实现, 下面我们就动手撸一个出来.

ST-Link V2.1简介

ST-Link V2.1 制作使用-风君子博客

上图是前几天打的实验板, 做的多的话BOM成本应该不到20元, 主芯片STM32F103CBT6, Micro-USB接口.

先看看ST-Link V2.1带来哪些强大的功能.Three different interfaces supported on USB: mass storage, Virtual COM port and debug port. 也就是单USB口可实现调试, 下载, 通信功能.

Mass Storage

USB连上电脑, 会识别出来一个约28K大小的盘

ST-Link V2.1 制作使用-风君子博客

这是STM32F103CBT6还能用的空间, 里面至少存储了DETAILS.TXT文件, 内容是版本号和固件Build时间.

Version: 0221
Build: Sep 18 2018 11:09:21

不要慌, 我们把 GND, CLK, DIO, RST(复位)四个引脚连接到自己板子的STM32对应的4个引脚(这里以STM32F429IGT6为例), 插上USB后, 电脑显示:

ST-Link V2.1 制作使用-风君子博客

这1MB空间就是STM32F429IGT6的空间.

然后, 把程序BIN文件拖进来(复制粘贴), 程序就自动下载到单片机里面了.

RST连接的时候, 程序下载完成会自动复位运行, 不连接的话, 需要手动复位.

所以, 最少GND, CLK, DIO三根引脚即可下载程序.

Virtual COM port

打开设备管理器, 图中的COM6就是虚拟串口:

ST-Link V2.1 制作使用-风君子博客

我们把ST Link V2.1的串口连接到USB转串口上, 如上节, 用SSCOM在 961200波特率下发102486字节, 没有丢包现象. 稳如老狗.

ST-Link V2.1 制作使用-风君子博客

Debug Port

这个就是通常意义的仿真调试下载口了, 同样是 GND, CLK, DIO三根引脚即可. Keil里面调试选择ST-Link, 使用SW端口即可.

ST-Link V2.1 制作使用-风君子博客

其他功能

其实ST-Link还可以通过MCO引脚输出8M时钟给其他单片机用, ST官方的Nucleo就是这么搞的. 可以省去一颗晶振.

ST-Link V2.1原理图

ST-Link V2.1 制作使用-风君子博客

ST-Link Bootloader程序

见最后资源下载, 需要用其他 J-link, ST-Link, DAP-Link等给STM32F103CBT6烧入Bootloader程序.

J-link可以用J-Flash软件.

ST-Link可以用ST官方的 STM32CubeProgrammer 软件, 或者CoFlash, 或者直接ST-Link V2.1复制Bootloader程序然后粘贴进去自动下载.

DAP-Link工具特别多, CoFlash或者自己撸脚本应该都可以.

这里就不要讨论是先有蛋还是先有鸡了…

ST-Link 固件更新

上面Bootloader下完后, 就可以用USB连电脑, 安装 ST-LINK utility 软件, 安装完后打开, ST-LINK→Firmware update

ST-Link V2.1 制作使用-风君子博客

Divice Connect → STM32+MSD+VCP → Yes

ST-Link V2.1 制作使用-风君子博客

进度条走到头即可.

官方ST-Link驱动

ST-LINK, ST-LINK/V2, ST-LINK/V2-1 USB driver signed for Windows7, Windows8, Windows10

给新电脑没有装过驱动的使用.

Keil的安装目录(ARM\STLink)里面也有STLink的驱动程序和升级程序.

结语

那个Bootloader其实并不知道是谁搞出来… 但硬件是几乎原封不动抄ST官方Nucleo板的, 后面也都是ST官方自己的东西了, 我们都是大自然的搬运工…

+1s:

bin文件的生成, 添加

C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe –bin -o C:\Users\weife\Desktop\cdc.bin …/…/Output/UDP_Server.axf

ST-Link V2.1 制作使用-风君子博客

weife是我的用户名, 改成自己的, 这样每次Keil编译就可以在桌面生成bin文件, 你可以把路径指定到ST-Link V2.1的盘里面, 这样每次编译可以自动下载程序(未尝试).

以STM32CubeMX生成的默认目录为例:

C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe –bin -o C:\Users\weife\Desktop\blink.bin …/MDK-ARM/DIANDENG/DIANDENG.axf

资源下载

https://download.csdn.net/download/weifengdq/11255177
第一次刷固件用STM32 ST-LINK Utility v4.3.0比较好, 后来的4.4和4.5第一次不好使, 在4.3刷完之后再用:
https://download.csdn.net/download/weifengdq/11423884