本节主要向大家介绍如何开发过程中的基本操作,如编译、串口下载、仿真器下载、仿真调试程序,体验一下 STM32 的开发流程,并介绍 MDK5 的一些使用技巧,通过本节的学习,将对 STM32 的开发流程和 MDK5 使用有个大概了解,为后续深入学习打好基础,这节内容丰富,从零入门,认真学习,边学边实践。
目录
一、 使用 MDK5 编译例程
二、使用串口下载程序
2.1 串口下载程序须知
2.2 STM32下载方式介绍
2.3 利用串口给STM32下载程序的步骤
2.3.1 串口下载硬件连接简易图
2.3.2 串口下载硬件连接事物图
2.3.3 配置下载串口下载程序工具/软件(ATK-XISP.exe)
2.3.4 STM32的启动模式分析(M3、M4)
2.3.5 串口下载一键电路(了解)
三、 使用 DAP 下载与调试程序
3.1使用DAP下载程序
3.1.1 DAP下载程序硬件连接
3.1.2 在MDK上配置DAP
3.2使用DAP仿真调试程序(掌握)
3.2.1 仿真界面简单介绍
3.2.2 具体展示调试过程
3.3仿真调试注意事项
四、 MDK5 使用技巧
4.1文本美化
4.2语法检测&代码提示(掌握)
4.3代码编辑技巧(掌握)
4.3.1 TAB键的妙用
4.3.2 快速跳到函数/变量被定义的地方
4.3.3 快速注释与快速取消注释
4.4 查找替换技巧
4.4.1 快速打开头文件
4.4.2 查找替换功能
4.4.3 跨文件查找功能
五、工程编译问题定位
六、窗口视图管理
一、 使用 MDK5 编译例程
我们在编写完代码以后,需要对代码进行编译,编译成功以后,才能下载到开发板进行验证、调试等操作。记住一句话:从底层讲,我们是通过对寄存器进行配置(向寄存器写入数据或者读取寄存器的数据),从而实现对外部电路的控制,进而实现不同的功能。
STM32的编程方式主要有以下3种:
(1)基于寄存器(2)基于标准库(固件库)(3)基于HAL库;
1. 基于寄存器:基于寄存器是学习单片机的基础,直接操作配置寄存器,从而实现选择不同的功能,比如8位的51单片机,32位的stm32单片机;
2. 基于标准库:STM32有非常多的寄存器,因此直接通过寄存器导致开发困难,所以ST公司就为每款芯片都编写了一份库文件,也就是工程文件里的stm32F4xx...之类的。在这些.c和.h文件中,主要包括一些常用量的宏定义,把对应的每个外设的寄存器封装成结构体来,如GPIO口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。也是目前最多人使用的方式,也是学习STM32接触最多的一种开发方式,我便是基于这种标准库的方式。
3. 基于HAL库:HAL 库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction
Layer (抽象印象层)。库如其名,很抽象,一眼看上去不太容易知道他的作用是什么。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效。
打开我们提前创建好的工程,如下图所示:
关于这里面的文件夹的作用是什么,主要包括哪些,后续会专门详细介绍,双击project.uvprojx项目文件,便可打开整个工程!进入 MDK IDE 界面,如图所示:
① 是部分编译按钮,表示编译当前工程项目文件,如果之前已经编译过了,则只会编译有改动的文件。所以一般第一次会比较耗时间,后续因为只编译改动文件,从而大大缩短了编译时 间。该按钮可以通过 F7 快捷键进行操作。
② 是重新编译当前工程所有文件按钮(全局编译),工程代码较多时全部重新编译会耗费比较多的时间, 建议少用。 按①处的按钮,编译当前项目,在编译完成后,可以看到如图所示的编译提示信息:
图中:
Code:表示代码大小,占用 1412 字节。
RO-Data:表示只读数据所占的空间大小,一般是指 const 修饰的数据大小。
RW-Data:表示有初值(且非 0)的可读写数据所占的空间大小,它同时占用 FLASH(存 放其初始值)和 RAM 空间。
ZI-Data:表示初始化为 0 的可读写数据所占空间大小,它只占用 RAM 空间。
因此图的提示信息表示:代码总大小(Program Size)为:FLASH 占用 1820 字节(Code+ RO + RW),SRAM 占用 1632字节(RW + ZI);成功创建了 Hex 文件(可执行文件,放在 Objects目录下);编译 0 错误,0 警告;编译耗时 1 秒钟。 编译完成以后,会生成 Hex 可执行文件,默认输出在 Objects文件夹下,如图 所示:
注意:必须编译成功,才会生成 Hex 可执行文件,否则是不会有这个文件的 !! Objects 文件夹下除了.hex 文件还有很多其他文件(.axf、.htm、.dep、.lnp、.o、.d、.crf 等), 这些文件是编译过程所产生的中间文件,我们将在后续的.map 文件分析给大家详细介绍这些文件的作用。至此,例程编译完成。简单总结如下:
二、使用串口下载程序
2.1 串口下载程序须知
1. M3、M4、M7开发板支持串口下载程序,但是ATK-XISP.exe软件只支持下载到内部
FL ASH。
2. STM32的ISP下载,常用串口1下载程序。
3 因为使用USB虚拟串口,所以事先得安装CH340 USB虚拟串口驱动。
2.2 STM32下载方式介绍
经过以上对比,因此我们推荐使用 SWD下载,强烈推荐大家购买一个仿真器(如ST LINK、 CMSIS DAP 等),可以极大的方便学习和开发。不推荐使用串口下载(速度慢、无法仿真和调 试)和 JTAG 下载(占用 IO 多)。
2.3 利用串口给STM32下载程序的步骤
接下来,我们将向大家介绍,如何利用串口给 STM32 下载代码。 STM32 通过串口 1 实现程序下载,开发板通过自带的 USB 转串口来实现串口下载。看起来像是 USB 下载(只需一根 USB 线,并不需要串口线)的,实际上,是通过 USB 转成串口, 然后再下载的。
2.3.1 串口下载硬件连接简易图
2.3.2 串口下载硬件连接事物图
下面,我们就一步步教大家如何在实验平台上利用 USB 串口来下载代码。 首先确保开发板接线正确,并成功上电,默认的出厂设置如图所示:
a) ①处的 USB_UART 通过 USB 线连接电脑,实现 USB 转串口,同时支持给开发板供电。 b) 确保电源灯②亮起(蓝色),如果不亮检查供电和电源开关③是否按下?
c) 确保 P4 端子的 RXD 和 PA9(STM32 的 TXD),TXD 和 PA10(STM32 的 RXD)通过 跳线帽连接起来(标号④),这样我们就把 CH340C 和 STM32 的串口 1 连接上了。
d) ⑤处的 BOOT 设置为 BOOT0(简称 B0)和 BOOT1(简称 B1)都接 GND(一键下载 电路自动控制,待会介绍)。
由下表STM32启动模式可知,使用串口下载 STM32 程序需要修改 BOOT 的设置,四个步骤如下: 1. 把 B0 接 V3.3 2. 保持 B1 接 GND 3.按一下复位按键 4.使用上位机软件下载代码 。
通过这几个步骤,我们就可以通过串口下载代码了,下载完成之后,如果没有设置从0X08000000 开始运行,则代码不会立即运行,此时,你还需要把 B0 接回 GND,然后再按一次 复位,才会开始运行你刚刚下载的代码。所以整个过程,你得跳动 2 次跳线帽,还得按 2 次复 位,比较繁琐。而我们的一键下载电路,则利用串口的 DTR 和 RTS 信号,分别控制 STM32 的 复位和 B0,配合正点原子团队研发的上位机软件 ATK-XISP,设置:DTR 的低电平复位,RTS 高电平进 BootLoader,这样,B0 和 STM32 的复位,完全可以由下载软件自动控制(B0 和 B1 使用一键下载电路后从始至终只需接 GND 即可),从而实现一键下载。
2.3.3 配置下载串口下载程序工具/软件(ATK-XISP.exe)
串口程序下载需要用到:ATK-XISP 这个上位机软件。这个软件可以实现对 STM32F1 到 STM32H7 等系列芯片的串口编程。STM32 串口下载软件(ATK-XISP),如图所示:
双击打开 ATK-XISP,进行如图所示的设置:
配置过程主要为以下四个:
① 搜索串口选择 CH340 虚拟的串口(我的是 COM23,不同电脑可能不同,需要根据实际情 况选择对应的串口),然后波特率我们推荐设置为 76800,速度过快可能会导 致下载失败。
② 选择 编译生成的 hex 文件(在 Objects文件夹)
③ 勾选校验和编程后执行两项,可以保证下载代码的正确性,并下载完后自动运行,省去按复位的麻烦。注意:千万不要勾选:使用 RamIsp 和连续烧录模式!否则下载失败!
④ 选择 DTR 的低电平复位,RTS 高电平进 BootLoader(别选错!),以匹配一键下载电路, 实现一键下载代码,省去设置 BOOT0、按复位的麻烦。
设置好之后,我们就可以通过按开始编程(P)这个按钮,一键下载代码到 STM32 上,下 载成功后如图 所示:
图中,我们圈出了 ATK-XISP 对一键下载电路的控制过程,先是获取芯片信息,然后 对全片擦除,还显示了文件的首地址以及文件大小等。 另外,下载成功后,会有“共写入 xxxxKB,进度 100%,耗时 xxxx 毫秒”的提示,并且从 0X80000000 处开始运行了。此时表示代码下载完成,并已经成功运行了,我们查看开发板就可以看到 DS0(红灯)、DS1(绿灯)开始交替闪烁了,如图所示:
至此,STM32 使用串口下载程序完成。
2.3.4 STM32的启动模式分析(M3、M4)
发布者:admin,转转请注明出处:http://www.yc00.com/web/1754858200a5208621.html
评论列表(0条)