程序编写、编译、仿真器调试完毕后,编译器会自动生成单片机能够识别的可执行文件(一般是.HEX格式的文件),只有将这些文件“安装”到单片机里面,才能够让单片机执行相应的功能。通常情况下,我们把将文件“安装”到单片机里面的步骤称为“烧录”或者“下载”。
具体如何将编译好的HEX文件烧录到单片机里面呢?这需要借助专用的烧录软件和烧录工具,STM32下需要专门串口ISP或者JLINK仿真器并结合相关软件才能给单片机下载烧录程序。
先了解STM32下载相关的几个概念:
什么是串口ISP?
ISP是一种通用的程序下载方式。可以通过串口ISP把程序下载到核心板中。但是通过ISP的方式下载程序速度慢并且不能实现在线的仿真调试,所以这种编程方式并不适合于单片机的学习与系统开发。
什么是JLINK?
JLink是SEGGER公司为支持仿真ARM内核芯片推出的JLINK仿真器。配合IAREWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单学,是学习开发ARM最好最实用的开发工具。
ISP和JLINK的区别
ISP: 只能进行程序的下载,程序下载速度慢。 JLINK:可以进行程序的下载和在线仿真调试,程序下载速度快。只有部分器件支持。在JLINK使能的前提下程序的下载和仿真无需进行其他设定即可。
STM32单片机的2种下载方式
串口ISP下载 | 结合使用Flash-Loader-Demonstrator软件或其它软件。这里不做详细说明。 |
JLINK下载 | JLINK是segger公司出品的支持一些系列微处理器的开发工具。使用最多的是开发arm系列芯片。对于常见的mdk、iar等开发环境都支持。将JLINK通过USB线连接电脑,通过20芯线连接核心板,并通过J-FLASHARM软件将程序下载到核心板。 |
首次使用需要安装驱动:
1) 首先找到Jlink仿真器驱动文件“Setup_JLinkARM...”,双击安装; 2) 自动识别安装Jlink驱动,设备管理器中可以看到“通用串行总线控制器-->J-Link driver”
打开下载软件J-Flash ARM,步骤如下
1) 打开J-Flash ARM界面 2) 工程设置,菜单栏中选择 options-project settings,设置如下: - General --> USB/Device0 --> Engineering - Target Interface --> JTAG模式 --> Adaptive clocking (两个) - CPU --> Device/ST STM32F103VE - Flash --> Base Addr: 08000000 --> Organization: 32 Bit x 1 Chip(s) - Production --> Erase --> Sectors if not blank --> Program --> Verify --> CRC 3) 连接器件 - Target --> Connect ...connected successfully 如果提示连接失败请再次检查硬件连接以及下载工程设置选项卡中的各项! 4) 打开HEX文件 - File --> Open data file --> 选择HEX文件 5) 下载程序 - Target --> Auto ...弹出下载完成窗口 6) 运行程序 - 复位键即可
常见问题:
如果在下载完一个程序,接着下载第二个程序的时候经常下载不成功,可以在下载完一个程序后先断开连接,即点
Target --> disconnect
下载第二个程序的时候重新连接,即 connect
步骤如下
1) 安装好KEIL软件 2) 打开现有工程文件 - XXX.uvproj 3) 在KEIL软件界面中找到点击“load”图标 (第3栏第4个) ... Erase Done. Programming Done. Verify OK. 4) 按下复位键运行程序
常见问题:
Error: Flash Download failed - Could not load file...
原因:没有找到下载文件,需重新编译。
Error: Flash Download failed - "Cortex-M3"
原因:工程文件中的下载未设置好。解决步骤如下:
1) 找到Target Options打开 2) Debug --> Use --> Cortex-M/R J-LINK/J-Trace --> Settings 3) Flash --> Add --> STM32F10x High-density Flash 512K
参考相关文档。