使用STM32单片机,下载方式有SWD/JTAG下载方式和串口下载方式,这两种下载方式不尽相同,需要注意区别。现将SW和串口下载方式进行对比。本帖的例子都是我切身遇到过的,曾经困扰过我好几天的问题,希望能对自己和大家学习STM32有所帮助
区别:
1.SW下载使用至少三根线进行通信,分别是VCC(可不连),GND,SWDIO(PA13),SWCLK(PA14)
而串口下载需要四根线,分别是VCC,GND,TXD(PA9),RXD(PA10)
注意:SWDIO、SWCLK和TXD、RXD并非单片机上相同引脚,不能使用系统板上引出的的SW接口进行串口通信,也不能使用串口通信接口进行SW方式下载。否则会无法下载,出现如下错误:
解决方法也很简单,把下载器的SWDIO接到单片机PA13,SWCLK接到单片机PA14即可。
2.SW和串口下载都需要系统板上具备对应的下载电路,才可直接使用usb线连接电脑直接进行下载。一般最小系统板上会引出SW下载接口(一般为排针、排母)和串口下载接口(一般为micro usb、mini usb或者type-c),但是不一定配备两套对应的下载电路(一般系统板不配备SW下载电路,可能配备串口下载电路,因此,通常情况下,使用SW下载都需要ST-LINK/PW-LINK等其他下载器,而使用串口下载不一定需要专门的TTL下载器)
注意:在下载前,请一定检查系统板上是否有两种下载电路,如果已经配备,不需要使用额外的下载器,否则画蛇添足,会产生通信异常等错误。
3.SW下载方式可以进行在线调试和一键下载,调试时十分方便
而串口下载方式需要断开连接的电源,再接上才能下载,较为麻烦,但是可以下载hex文件进单片机,方便批量下载。
注意:如果SW下载时没有选则“下载后运行”,也需要按一次reset启动程序。
其他注意事项:
1.由于串口下载接口和SW下载接口不同,所以在使用SW下载方式而想要用串口1打印一些数据时,需要把串口1和SW都接上(若系统板上没有下载电路,需要连接TTL下载器才能接收到数据,否则电脑提示无法识别,如下图。)
解决方法就是连接到TTL下载器,进行电平转换之后电脑即可识别。
欢迎关注、收藏,我将会不定期分享本人的各种技术和学习经验。