STM32芯片烧录的几种方式介绍Keil5

您所在的位置:网站首页 stm32f103下载程序 STM32芯片烧录的几种方式介绍Keil5

STM32芯片烧录的几种方式介绍Keil5

2023-03-24 15:36| 来源: 网络整理| 查看: 265

前言

要想将嵌入式学习好,重要的是整体的工程思想和项目经验积累。

所以要动手实践,要动手实践,要动手实践!这个真的很重要。

STM32的启动模式介绍 从STM32参考手册上,可以查阅到,STM32的启动模式,共有下列三种,可以通过BOOT0和BOOT1电平的不同组合,来选择不同的启动模式。

主闪存启动模式:即运行模式,单片机上电即运行程序。

系统存储器启动模式:即串口下载模式。上电之前要先设置BOOT0=1,BOOT1=0,然后才能通过串口下载程序。或者在已经上电的情况下,设置BOOT0=1,BOOT1=0,然后按一下复位键,这样也能通过串口下载程序。

SRAM启动模式:即调试模式。假如只修改了代码中一个小小的地方,如果直接擦除整个Flash,比较费时,而且Flash的擦写次数也是有限制的。所以可以考虑从RAM中启动代码,用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。

有的朋友肯定遇到过这种情况:程序第一次下载的时候可以运行,但是掉电重启之后,程序就不能运行了。这种情况就有可能是把BOOT设置成了串口下载模式,所以掉电之后,并不会自动运行。如果想要即使掉电重启也能直接运行程序,可以把BOOT设置为主闪存启动模式,即BOOT0=0。

一、MDK软件烧录方式

Keil uVision5,建立工程并编译通过后,可以实现内部集成的烧录工具实现对目标开发板(芯片)的烧录工作。

1、硬件工具说明

J-link调试器用的是J-LINK V9.0,板子用的是STM32F103C8T6型号芯片,正点原子的最小系统板。

2、软件说明

Keil uVision5

附上软件安装包(破解)

链接:https://pan.baidu.com/s/1HPAul6F7P8b9hE96z4yAjQ

提取码:y8z3

3、设置步骤

①把板子上的BOOT0和BOOT1置为接地,连接上JTAG接口和串口

②Keil uVision5 中 options for target 设置Device的芯片为板子上的芯片型号(STM32F103C8T6) (以下步骤均在Keil uVision5 中 options for target中设置)

③Target菜单中设置晶振频率(8MHZ)

④Debug菜单中选择设置为J-LINK/J-TRACE cortex ,点击setting ,设置PORT=SW ,MAX = 10MHZ

⑤Utilities菜单中取消选中 use debug device ,选择设置为 J-LINK/J-TRACE cortex ,点击settings,添加STM32F1xx 的 flash size为128k的那个。

设置完成之后点击DOWNLOAD下载就行。

缺点是显而易见的,当我们工程文件缺失,只有烧录目标程序.bin或者.hex文件时,我们就不能通过这种方式进行烧录操作。

二、串口烧录方式

使用串口进行烧录,上位机可采用FlyMcu,然后通过USB转串口线(或者板)给目标设备进行烧录。需要注意的是,如果是M3内核非互联网型的板子这里的串口必须是串口1,对应为GPIO9和GPIO10。如果是M4内核,可以是下述端口。

● USART1(PA9/PA10)

● USART3(PB10/11 和 PC10/11)

● CAN2(PB5/13)

● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。

1、硬件工具说明

在进行串口下载程序之前,如果串口芯片的驱动程序没有安装,那么电脑不能识别串口,在安装串口驱动之前,要先确定开发板所使用的串口芯片,常用串口芯片有CH340、PL2302、CP2102、FT232。大家如果使用其他的串口芯片,要安装对应的驱动程序。

2、软件说明

FlyMcu是由单片机在线编程网开发的一款串口下载软件,如果想获取最新版的软件可以到官方网站直接下载。

附上安装包

链接:https://pan.baidu.com/s/1-7BPAyzLUuDcCiAW8jPKqg

提取码:grjz

3、设置步骤

①BOOT1设为0,BOOT0设为1,按复位键即可进入串口下载模式,打开FlyMcu软件,选择正确的串口,点击读器件信息,显示连接成功。

②打开所需要下载的HEX文件,这里由于电路上没有自动复位进BOOT区的电路(正点原子部分高级一点的板子有),我们选择不使用RTS和DTR。点击开始编程。直至下载成功。

③下载完成后,将BOOT0跳线跳到0,按一下Reset键,程序即可正常运行。

使用这种串口方式烧录时,在KEIL中将检测不到STLINK,若选择STLINK进行烧录,将会报错。未检测到STLINK错误提示。需要编译后,用另外的工具进行烧录。

三、STLINK烧录方式

1、硬件工具说明

STLINK下载器

2、软件说明

ST-LINK Utility

此软件需要使用STLINK仿真烧录器,支持.bin/.src/.hex/.src/.s19五种格式的烧录文件下载。烧录文件在MDK软件编译工程时会自动生成。正点原子的例程烧录文件位于OBJ文件夹中(.hex)。如果是使用STM32CUBEIDE生成的工程,编译后烧录文件位于Debug文件夹中(.bin)。

附上安装包和驱动

链接:https://pan.baidu.com/s/147ABptHCrhAQmkLdGlYzcw

提取码:zdmh

3、设置步骤

①先在电脑上安装STM32 ST-LINK Utility,软件安装一路Next就可以了,安装好软件之后界面如下:

下载程序只需要使用3个图标就可以了

第一个图标Connect to the target,这个图标用来连接器件,在硬件连接正确的情况下,会读出器件的ID号,以及一些其他信息

第二个图标:Open file,点击这个图标,打开要下载的HEX文件,例如下图,就是打开一个程序后软件出现的代码

第三个图标:Program Verify,点击后会弹出一个窗口,这个窗口的配置默认就好,不用修改,直接点击Star就可以直接下载了,下载速度取决于程序大小,程序大下载则慢

③下载成功如下图所示:

附录:

连接异常处理

1、能连接但下载报错

使用杜邦线进行SWD连接时,如果是散线或者线缆过长,会出现KEIL能连接上,但是下载报错(flash错误或者M3错误)的故障。将线缆更换为排线或者降低线缆的长度可以解决这个问题。

连接线不要过长,不建议是用散装线。

2、特殊IO口使用导致烧录一次程序后SWD口不能用

JTAG或者SWD端口被占用,但是却没有进行正确的配置。

在开发STM32F407芯片时,调试18B20温度程序时发现一个问题,当下载完一次程序后,SW就失去连接。

强制烧录时报错信息如下:No target connected

报错信息Error:Flash Download failed-Target DLL has been cancelled

使用utility连接也会报错,报错信息如下:Cannot connect to target

按照提示,在烧录时按Reset按键,成功烧录了软件。使用一行行注释排除的方法,最后定位在DS18B20_Init初始化函数这。程序使用了PB15作为了18B20的输入,这个口也是JTAG的接口,在使用时,不能按照常规GPIO口进行配置。使用时,需要先禁止JTAG,然后使能SWD。如果弄成了最后一种模式就SW下载方式无效,需要按住Reset复位重新连接烧录了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3