STM32 下载程序的模式选择
资源源于正点原子、杨桃、博客https://zhuanlan.zhihu.com/p/367821312
文章目录
一:搭建配置
keil5+mcuisp(FlyMcu) 1,ALIENTEK xxSTM32开发板入门资料\MDK5安装手册.pdf
二:USB串口入门:
(STM32拥有5个串口USART与UART)仅用USART1ISP下载通讯
(1)可以当串口使用。
(2)如果USB串口连接到STM32的串口1(STM32的ISP下载只能是串口1)的话,那么可以用来串口下载程序。
(3)因为连接到USB,所以可以用来USB供电。
三:补充:单片机程序烧录的3种方式(ISP、ICP、IAP)
感谢:https://zhuanlan.zhihu.com/p/367821312
1.烧录的方式:
C51
- 使用烧录软件——STC-ISP
STM32
有三种不同的烧录方法
- 1:keil软件自带的下载按钮就能下载、调试程序,需要额外使用J-Link下载器。
- 2:keil编译后生成.hex文件,再使用烧录软件FlyMCU进行串口下载,但是需要USB转串口TTL的电路,且需要USB下载线
- 3:远程无线升级的
2.认识下载器
这里的下载器主流用到的是第一种下载方式(电脑连接单片机对应的引脚SWD/JTAG)
参考 https://blog.csdn.net/chenhuanqiangnihao/article/details/113833496
2.1:数据线
作为初学者,你一定看教程学习步骤是这样的:利用一根数据线,连接电脑和单片机,keil编译后生成.hex文件,再使用烧录软件FlyMCU下载即可,但是前提是你在单片机电路中设计了这个下载电路接口,而且这种下载不能进行仿真,所以仅仅用于学习。不建议后续代码测试
2.2 :J-link
JLink一端接电脑USB接口,一端接CPU的JTAG接口,JLink充当的作用就是USB转JTAG,支持JTAG和SWD两种模式(但是这两种模式一般不会同时开启),由于比较贵,不建议使用
2.3 ST-Link
似乎可以直接在keil中进行调试和jlink,基本一致一头接USB,另一头接32的JTAG/SWD接口(经常使用这种下载/调试方式)
一代很贵,目前已经发展到2代(非常便宜)
———————————————————————————————————————————————————————————
3 给单片机烧录程序的种类
上面不同的下载方式及对应不同的烧录种类
- ISP(In-System Programming)
在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。 - ICP (In-circuit programmer)
在电路编程,使用SWD/JTAG接口。 - IAP(In-Application Programming)
指MCU可以在系统中获取新代码并对自己重新编程,即用程序来改变程序。
4 关于FlASH存储区(断电没事那种存储区)
-
Main memory 主存储区
通常,我们编写的代码,是放到主存储区的起始位置(0x0800 0000)开始运行的,烧录程序时,直接将程序烧录到这里即可(KEIL软件给STM32烧录程序的默认烧写地址就是0x0800 0000开始) -
System memory系统存储区
System memory(起始位置0x1FFF 000)是STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序 ,这是一块ROM,出厂后无法修改。
4启动方式的介绍
5 ISP、ICP、IAP区别
也就是说FLYMCU主要是运行MCU里面的Bootloader来进行下载的
通过Keil使用J-LINK给MCU下载是直接在下载地址处下载程序(因为keil默认就在OX08000000开始的)
四: ISP 正点板子上的串口驱动芯片
4.1 ISP一键下载
串口驱动芯片型号:CH340
串口下载工具:mcuisp(FlyMcu)
\6,软件资料\1,软件\CH340驱动(USB串口驱动)_XP_WIN7共用 (有的时候需要安装配置一下windows的驱动才能够沟通板子)
4.2 ICP下载
驱动包目录:
\6,软件资料\1,软件\JLINK驱动
4.3 相关设置:
硬件焊接注意:
STM32的ISP下载,只能使用串口1,也就是对应串口USART1发送接收引脚PA9,PA10。不能使用其他串口就是串口2:PA2,PA3)用来ISP下载。
具体下载步骤就不细说了,无非是:
ISP选择hex文件,然后开始编程(当然要求Boot0(44)接GND,Boot1(20)接任意,按一次复位。)
当然正点原子还介绍了关于CH340原理(USB转串口),就不细看了