​ 这几天捯饬了一下烧录程序的方法。主要还是SWD烧录,后续应该会尝试其他方法。我最开始的时候就不太会弄,即便手边有个仿真器也没有去用(后来就丢了😂),一直用的是ISP下载,不仅效率低,还不能在线调试。所以就整理了一下烧录方法。

STM32仿真器程序烧录

SWD烧录

SWD烧录是一种串行调试接口,出去供电与共地只需要两根线即可烧录调试

  • SWDIO: 串行数据线,用于数据的读出和写入;
  • SWDCLK: 串行时钟线,提供所需要的时钟信号;

下面是官方手册里烧录接口的引脚到GPIO口的映射关系

映射关系.png

这个是标准的接口排列,要注意的是按照插座边上的缺口向左的方向来查看。

swd_jtag插座.png

一般情况下大多数单片机的 JTAG 接口和 SWDIO 接口是复用的,下面就是MINI板的原理图

MINIswd插座.png

这个是比较常见也比较便宜的一款J-link,只有3.3vVCC、SWDIO、SWCLK、GND四根线,接线方式也十分的简单 。

廉价j-link.jpg

STM32C8T6、openCRP等等已经给出这四个接口的板子直接接上就好了

swd接口.jpg

如果是20脚标准接口的话对照上面的图片找到对应的引脚直接接上即可。

廉价j-link接线.jpg

​ 如果实在找不到接口呢,直接把SWDIO、SWCLK接在PA13、PA14,再供电共地也是一样可以正常烧录的。

​ 经过测试呢,可以正常烧录,但是会供电不足。其中C8T6和openCRP5V引脚电压不够,不过程序倒是可以正常运行;而MINI则是程序无法正常运行。这个具体情况还与各个板子的PCB设计有关。一般保险起见的话,需要额外供电

这也是很常见的一款ST-link

ST-link.jpg

​ 如果能直接用20脚的接口就很方便。不行的话也可以直接对照前面的图片把SWD对应的四根线接出来。

​ 和板子的接线方法与之前都是一样的。

软件配置

这里用的是MDK5或者叫Keil

  1. 首先是点开魔术棒,选择对应的调试器config.png
  2. 然后进入settings选择烧录方式和烧录速度config2.jpg
  3. 然后可以检查一下烧录算法和自己的芯片型号是不是对应的。config3.jpg
  4. 最后点击load按钮就可以烧录了。

ISP烧录