stm32F4环境的配置固件库的安装与Jlink驱动的下载)与模板工程的创建

2023-12-13 11:57:16

01-stm32F4环境的配置与模板工程的创建

使用开发板为stm32F407VET6,为单片机课程设计时的课程学习内容。本章节主要包括stm32F4环境的配置(固件库的安装与Jlink驱动的下载)与stm32模板工程的创建
模板工程可到我的gitee上进行下载–模板工程下载地址

一、 stm32固件库的安装

在学习一个新的开发板时,如果是进行的固件库的学习,那么必不可少的就是固件库的使用。所以第一步当然就是固件库的安装。

STM32固件库是意法半导体为了提高代码的可移植性,为了加快产品开发所提供的一整套API,这些API一方面向下直接操作硬件寄存器,一方面向用户提供可编程接口,使得用户可以在不用知道知道具体寄存器的情况下编写应用程序,而且便于移植。

1.1 第一步:下载相应的固件库文件

在安装之前我们可以从官方arm kile 下载地址进行固件库的安装;或者是从老师的资料包中找到。
这个固件库是下面这样的
在这里插入图片描述

如果是在官网下载的界面是这样的
在这里插入图片描述

1.2 第二步:安装固件库

直接双击固件包就可以,你可以看到下面的界面,他会自动找到之前安装keil的路径,直接点击next就可以
在这里插入图片描述

1.3 第三步: 查看芯片资料

你可以在你自己的keil中看到自己的魔法棒中的divce里面看到自己需要的芯片包
在这里插入图片描述

二、Jlink安装

J-Link是一种硬件调试和编程工具,通常用于微控制器和嵌入式系统的开发。它支持多种微处理器架构,包括ARM、Cortex-M、Renesas等

Jlink是一种下载方式,在keil中的体现就是可以直接使用"download"安装
在这里插入图片描述

2.1 下载J-LInk驱动

第一步:从SEGGER官网下载J-link的驱动
jlink驱动下载位置

下载后你可以看到一个这样的文件
在这里插入图片描述

2.2 安装J-Link

直接双击运行上面的.exe文件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

都是傻瓜式的安装没有什么其他要注意的。

三、 模板工程的创建

一个文件从.c到可运行:

预处理(将宏等定义进行转换),编译(语法检测),汇编(转换为机器可以识别的汇编),链接(链接到相应的库)。

3.1 创建六个文件夹

在这里插入图片描述

这六个文件夹是我们按照不同的用途进行分类,方便我们后面的文件管理。

  1. code :存放内核启动文件
  2. FWLIB:存放固件库函数文件
  3. SYSTEM:存放用户自定义函数库,移植库
  4. USER:存放工程所在文件
  5. HARDWARE:存放外设模块文件
  6. OBJ: 存放过程文件

3.2 复制官方库文件夹中的文件到工程目录中

想要复制现有的固件库,首先需要在官网将固件库的文件下载下来。
下载下来后会有,也可以在我的仓库中下载,STM32F4与STM32F1固件库下载
在这里插入图片描述

3.2.1 FWLIB文件夹添加配置

打开官方库文件,定位到\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver下面.将目录下面的 src,inc文件夹 copy 到我们刚才建立的 FWLib 文件夹下面
在这里插入图片描述

3.2.2 CORE目录文件夹的添加

定位到 \STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm下面,将文件 startup_stm32f40_41xxx.s复制到 CORE 目录下面
在这里插入图片描述

定位到目录\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Includ, 将 里 面 的 四 个 头 文 件 :core_cm4.h、core_cm4_simd.h、core_cmFunc.h 以及core_cmInstr.h 同样复制到 CORE 目录下面

在这里插入图片描述

3.3.3 USER 目录文件夹添加配置

定位STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include将里面的 2 个头文件 stm32f4xx.hsystem_stm32f4xx.h复制到 USER目录之下。
在这里插入图片描述

定位到 \STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates,将 目 录 下 面 的 4个 文 件 stm32f4xx_conf.hstm32f4xx_it.cstm32f4xx_it.hsystem_stm32f4xx.c复制到 USER 目录下面。
有些教程是五个文件,还包括一个main.c文件,但是这个文件我们自己进行开发,所以这个main文件我们到时候自己创建。
在这里插入图片描述

3.3 将文件与工程联系起来

之前我们所有创建的文件都是直接对目录进行的修改,我们并没有将其与我们的keil工程联系起来,所以我们需要打开keil,并创建一个新的项目。
在这里插入图片描述

创建一个工程至USER目录下,注意工程名称不要有中文。
在这里插入图片描述

选择自己单片机的型号即可
在这里插入图片描述

完成上面的工程创建后,将文件添加到工程中,步骤如下:
在这里插入图片描述

建立三个Groups: USER,CORE,FWLIB。然后点击 OK即可,注意这里的文件夹名称要和我们之前创建的文件夹名相同。

添加完成之后,还有一个需要删除的文件!!
stm32f4xx_fmc.c 比较特殊。这个文件STM32F42 和 STM32F43 系列才用到,所以我们这里要把它删掉(注意是 stm32f4xx_fmc.c 要删掉,不要删掉stm32f4xx_fsmc.c)。

3.4 设置头文件存放路径

如果没有设置头文件路径,那么工程会出现报错,头文件路径找不到
在这里插入图片描述

在这里插入图片描述

我们需要添加的头文件路径包括:\CORE, \USER\以及\GECLIB\inc。若需要添加到自己建立的头文件,也需要做路径的添加

3.5 设置全局宏定义标识符

STM32F40 系列的工程,还需要添加一个全局宏定义标识符

添加方法是点击魔术棒之后,进入 C/C++选项卡,然后在 Define 输入框连输入:STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxx和 USE_STDPERIPH_DRIVER,请大家注意他们之间是用英文的逗号隔开的。
在这里插入图片描述

3.5 设置hex文件生成

在做编译工程之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder forobjects…”,然后选择目录为我们上面的新建的 OBJ 目录。然后再OBJ目录下就可看到我们需要的程序.hex文件了。
在这里插入图片描述

3.6 创建新的main.c

之前我们说过main.c 我们没有复制,所以我们需要自己创建一个main.c文件在目录USER下

首先右键USER目录,点击创建新的文件
在这里插入图片描述

在这里插入图片描述

创建完成后,写上我们自己的代码,比如一个最简单的(什么都没做):

#include "stm32f4xx.h" //# 开头为预处理,会在第一步将该文件的相关信息加载进来

/*“”<>的区别
>双引号会先在当先目录中查找,如果当前目录下面没有,则也会去库中去找
<>直接到库(环境变量)里面去找该文件
while(1)//防止程序跑飞,让程序一直在在while(1)中。
*/

int main(void)
{

while(1) ;
}

3.7 删除main.h相关使用

如果你还没有这一步,直接运行,会报错找不到main.h文件
所以可以在USER 分组下面的 stm32f4xx_it.c 文件内容清空。 或者删掉其中的 32 行对main.h 头文件的引入以及 144 行 SysTick_Handler 函数内容

在这里插入图片描述

在这里插入图片描述

3.8 编译工程

最后一步,对工程进行编译,可以看到编译的工程没有报错
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_63831368/article/details/134964549
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。