1、打开mdk5,点击Project目录下的New uVision Project
2、软件弹出页面对新建的工程文件进行取名字并保存
3、选择对应的芯片包下具体使用的mcu(我学习的和拥有的是F103C8T6,所以选择的便是F103C8T6)
4、创建完成(如果弹出页面选择ok即可)
HAL 库开发包: STM32Cube_FW_F1_V1.8.0 这是 ST 官网下载的 STM32CubeF1 包完
整版,位于目录(压缩包):
“\8, STM32 参考资料\1, STM32CubeF1 固件包\ en.stm32cubef1.zip”。
5、 在建立工程之前,建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工
程都可以放在这个文件夹下面,这里我们建立一个文件夹为 Template。这是工程的根目录文件
夹。然后为了方便我们存放工程需要的一些其他文件,这里我们还新建下面 4 个子文件夹:
CORE , HALLIB, OBJ 和 USER。
6、将之前创建工程时的文件选中”CTRL+x“剪切到user文件夹下
7、 打开官方 STM32CubeF1 固件库,定位到我们之前准备好的 HAL 库包的目录:
\STM32Cube_FW_F1_V1.8.0\Drivers\STM32F1xx_HAL_Driver 下面,将目录下面的 Src,Inc 文件
夹复制到我们刚才建立的 HALLIB 文件夹下面。 Src 存放的是固件库的.c 文件, Inc 存放的是对
应的.h 文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c 文件和一
个.h 头文件。 操作完成后工程 HALLIB 目录内容如下图
8) 接下来,我们要将 STM32CubeF1 包里面相关的启动文件以及一些关键头文件复制到我们的
工程目录 CORE 之下。打开 STM32CubeF1 包,定位到目录
\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm 下面,
将 文 件 startup_stm32f103xe.s 复 制 到 CORE 目 录 下 面 。 然 后 定 位 到 目 录
\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Include,将里面的四个头文件: cmsis_armcc.h,
cmsis_armclang.h, cmsis_compiler.h, core_cm3.h 同样复制到 CORE 目录下面。
9) 接下来我们要复制工程模板需要的一些其他头文件和源文件到我们工程。首先定位到目录:
\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Include 将里面的 3 个文件
stm32f1xx.h, system_stm32f1xx.h 和 stm32f103xe.h 复制到 USER 目录之下。
10)进入目录\STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Templates 目录下,这个目录下面有好几个文件夹,如下图 3.3.1.10,我们需要从 Src 和 Inc 文件夹下面复制我们需要的文
件到 USER 目录。 如下图:
首先我们打开 Inc目录,将目录下面的 3个头文件 stm32f1xx_it.h,stm32f1xx_hal_conf.h 和 main.h全部复制到 USER 目录下面。然后我们打开 Src 目录,将下面的四个源文件 system_stm32f1xx.c,stm32f1xx_it.c, stm32f1xx_hal_msp.c 和 main.c 同样全部复制到 USER 目录下面。相关文件复制到 USER 目录之后 USER 目录文件如下图 :
11)打开光盘的“4,程序源码\标准例程-库函数版本\实验 0-1 Template 工程模板-新建工程章节使用”工程目录,从里面复制 SYSTEM 文件夹到我们的 Template 工程模板根目录即可。
到这里,工程模板所需要的所有文件都已经复制进去。接下来,我们将在 MDK 5中将这些文件
添加到工程。
12) 下面我们将前面复制过来的文件加入我们的工程中。右键点击 Target1,选择 Manage ProjectItems,如下图 :
13) Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 SourceGroup1,建立四个 Groups: USER, SYSTEM, CORE,和 HALLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况如下图 :
14)我们按照步骤 9 的方法,右键点击点击 Tempate,选择 Manage Project Items.然后选择需要添加文件的 Group,这里第一步我们选择HALLIB,然后点击右边的 Add Files,定位到我们刚才建立的目录\HALLIB\Src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件,如下图 :
15) 用上面同样的方法,将 Groups 定位到 CORE, USER 和 SYSTEM 分组之下,添加需要的
文件。CORE 分组下面需要添加的文件为一些头文件以及启动文件 startup_stm32f103xe.s(注意,默认添加的时候文件类型为.c, 添加.h 头文件和 startup_stm32f103xe.s 启动文件的时候,你需要选择文件类型为 All files 才能看得到这些文件)。 USER 分组下面需要添加的文件 USER 目录下面所有的.c 文件: main.c, stm32f1xx_hal_msp.c, stm32f1xx_it.c 和 system_stm32f1xx.c 四个文件。 SYSTEM 分组下面需要添加 SYSTEM 文件夹下所有子文件夹内的.c 文件,包括 sys.c,usart.c 和 delay.c 三个源文件。添加完必要的文件到工程之后,最后点击 OK,回到工程主界面。操作过程如下图 :
16) 接下来我们要在 MDK 里面设置头文件存放路径。也就是告诉 MDK 到那些目录下面去
寻找包含了的头文件。这一步骤非常重要。 如果没有设置头文件路径,那么工程会出现报
错头文件路径找不到。
这里添加的路径必须添加到头文件所在目录的最后一级。比如在 SYSTEM
文件夹下面有三个子文件夹下面都有.h 头文件,这些头文件在工程中都需要使用到,所以我们
必须将这三个子目录都包含进来。这里我们需要添加的头文件路径包括: \CORE, \USER\,
\SYSTEM\delay , \SYSTEM\usart, SYSTEM\sys 以及\HALLIB\Inc。这里还需要提醒大家, HAL库存放头文件子目录是\HALLIB\Inc,不是 HALLIB\Src,
17) 接下来对于 STM32F103 系列的工程,还需要添加全局宏定义标识符,所谓全局宏定义
标识符,就是在工程中任何地方都可见。添加方法是点击魔术棒之后,进入 C/C++选项卡,然
后在 Define 输入框连输入: USE_HAL_DRIVER,STM32F103xE。
18) 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。
前面我们讲过, MDK 默认编译后的中间文件存放目录为 USER 目录下面的 Listings 和 Objects
子目录,这里为了和我们 ALIENTEK 工程结构保持一致,我们重新选择存放到目录 OBJ 目录
之下。操作方法是点击魔术棒 ,然后选择“Output”选项下面的“Select folder for objects…”,
然后选择目录为我们上面新建的 OBJ 目录,然后依次点击 OK 即可。
要勾上“Create HEX File” 选项和 Browse Information 选项。 Create HEX File 选项选
上是要求编译之后生成 HEX 文件。 而 Browse Information 选项选上是方便我们查看工程
中的一些函数变量定义等。
这就完成工程创建啦。