程序下载是一切的基础,对于搞单片机的人最开始学的就是程序下载,本人在刚开始学习51单片机的时候就只是知道串口下载,以至于什么usb-转串口的芯片的作用也没有去了解,直到现在学习使用了stm32都快两年了,才第一次深入的考虑这些问题,想总结一下,当然这个都是参考网络上的一些牛人,借鉴一下别人的,然后自己整理了一下,为刚入门单片机的新手们简单解释一下,这些完全是本人的理解,不对之处,还请指正。
先总体说一下,stm32的程序下载方式(这里我主要讲解采用jlink,isp(串口在线编程),而用u-link,st-link应该也是可以的,不过本人没有真实的接触过),
大概有一下三种方式:
(1)j-flash下载(需要用到j-link),这个网上的说明很多,参考一下这个网址http://blog.chinaunix.net/uid-20788517-id-263475.html
(2)MDK配置下载(需要用到j-link),同样参考上面的网址。
(3)串口isp下载,这个我要重点的说明一下,说道这个用过51单片机的朋友都是非常熟悉的,我们下载程序的时候,都是借用第三方软件来对可执行程序进行下载的,而32单片机的这个下载方式被我们大家所熟知的是这个j-link下载,但是他的本意是对程序进行在线调试用的,如果单纯的下载程序使用,这个还是很大的,不如串口下载来的经济实惠。(只是现在已经习惯了用j-link的下载方式)。
下面先说说采用isp 下载的常用的两种电路。
这个是第一种下载电路,下面是第二种电路。
大家看到这两张图就会问 ch340和pl2303这两个是干神马用的,现在小编就开始给大家好好解释一下。
给大家讲讲 max232,ch340,pl2303,hl340的区别于联系。
首先大家要知道 ch340,pi2303,是同一类的芯片都是将USB信号转化为单片机的TTL串口信号(为什么要用这个芯片转呢,因为下载的程序最终要和单片机的串口引脚发送接受引脚进行连接,而他们的引脚只能识别TTL电平,没办法,咱们只能顺从他了,否则下载不了程序啊)。而max232芯片的作用是将TTL电平与RS232电平进行相互的转化。再说这个hl340,这是一个USB转串口线的型号,它等价于 ch340芯片+max3232芯片。
所以你就可以看明白了上图中的1是怎么转化的了,下面说一下过程,电脑-->USB线-->ch340-->max3232(以上三个部分相当于我们的一个usb转串口线hl340,输出的是TTL电平)-->串口九针接口-->max3232(再转化为TTL电平,因为单片机的串口只能接受TTL电平)-->单片机。结束了。
看来这个图1好像有点折腾的意思,当然图2就好一点,原来我们使用的51单片机开发版这两种电路都是有的,但是我们使用的都是第二种,连线简单不易出错。下面给大家上个截图吧!我原来在大学的时候用过的51单片机开发版!
当然如果是我们的stm32单片机开发版的话一般是么有线路2的,只有线路1这一种的。
但是这个想要用串口下载的时候,应该对这个stm32的boot 引脚进行一下设置,然后采用用ISP下载的,不细说了,就说常用的方法,把stm32的boot1引脚直接接地,然后用boot0引脚接拨码开关就可以了!开关控制其0-1状态,在flash和stm32出厂时预先装的bootloader程序,拨到bootload启动以后,要按一下复位,用第三方软件获取一下芯片信息,然后再下载,下载完以后,再拨会到flash,复位一下程序就可以执行了。
再说一下用j-link下载的时候,可以采用j-tag接口和swd接口,这个据说swd比较好,这个没有细研究,那就说说接线情况,最少接几根,在实际项目应用的时候,有些场合对板子大小有要求,所以希望下载用的引脚越少越好,下面是j-tag下最小引脚图(参考网址http://www.it165.net/embed/html/201308/2332.html)。
下一个图是swd引脚图
上面两个图就是验证一下,能否下载进去,最终是可以下载进去的。