STM32是可编程器件,用C语言和汇编都可以,由于C语言可读性强、移植方便,现在用C语言编程成为主流,C语言编号的hex需要下载到单片机中,单片机才能执行,这个过程叫做程序的烧录或者下载,需要专用工具的支持。对STM32而言,有三种方法可以烧录程序,分别介绍。
1.使用JTAG接口烧录程序(用JLINK实现)
JTAG是一种标准的程序烧写接口,许多比较高端的芯片都支持该接口,该接口有10针,14针,20针等,但是用到的引脚有六个,分别为:TCK,TMS,TDI,TDO等,另外两根线是TRST和RESET。接口如下所示。
对于STM32而言,上图中的几个上拉电阻可以省略不用,STM32在手册上已经描述了单片机对应的引脚内部有上拉电阻,这种方式可以通过JLINK来实现烧写。该方式可以实现在线调试,提高了查找问题的效率。
2.SWD烧录方式
SWD方式主要用到两根线:SWDIO和SWCLK,该接口一般和JTAG接口共用,接口电路如下所示:
这种烧录方式可以通过JLINK、STLINK等工具实现。该方式可以实现在线调试,大大方便了查找问题的效率,而且节省单片机引脚,接口小,节省PCB空间。
3.ISP模式/UART模式
STM32单片机可以通过UART串口引脚下载程序,这种方式使用的是单片机的串口,即TXD和RXD两根线,所使用的工具是USB/TTL,如下图是实现自动ISP下载的电路图。
上图看起来复杂,其实USB/TTL芯片不用画在电路板上,使用额外的工具即可,在连接的时候要使用交叉连接,而且还要选择单片机的启动方式,即BOOT0和BOOT1的状态。该方式下载程序虽然方便,但是无法实现在线调试。与前两种方式相比,该种方式比较适合量产。
通过以上三种方式即可实现将C语言程序烧写进STM32里,从而让单片机执行程序代码。