2019.03.12-使用MDK5搭建STM32基础工程步骤

1、在建立工程之前,我们在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个Test文件夹下面。

 

2、点击 MDK 的菜单:Project –>New Uvision Project,然后将目录定位到刚才建立的Test文件夹下,在这个目录下面建立子文件夹Project,然后定位到Project目录下面,我们的工程文件就都保存到Project文件夹下面。重命名工程,点击保存。

 

3、接下来会出现一个选择 CPU 的界面,根据需要选择芯片型号。特别注意:一定要安装对应的器件pack才会显示这些内容哦!MDK所需的pack可以在http://www.keil.com/dd2/pack/下载使用。 

2019.03.12-使用MDK5搭建STM32基础工程步骤_第1张图片

 

4、到这里,我们还只是搭建了一个框架,还需要添加启动代码以及.c文件等。现在我们看看Project目录下面包含 2 个文件夹和 2 个文件。这里我们说明一下,test.uvprojx 是工程文件,非常关键,不能轻易删除。Listings 和 Objects文件夹是MDK自动生成的文件夹,用于存放编译过程产生的中间文件。这里,为了跟 MDK5.1之前版本工程兼容,我们把两个文件夹删除,我们会在下一步骤中新建一个 OBJ 文件夹,用来存放编译中间文件。当然,我们不删除这两个文件夹也是没有关系的,只是我们不用它而已。

 

5、接下来,我们在Test工程目录下面,新建 3 个文件夹 CORE、OBJ以及STM32F10x_FWLib。CORE 用来存放核心文件和启动文件,OBJ 是用来存放编译过程文件以及hex 文件,STM32F10x_FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件。已有的USER目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括system_stm32f10x.c等等。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第2张图片

 

6、下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。

打开官方固件库包,定位到我们之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,将目录下面的 src、inc 文件夹复制到我们刚才建立的STM32F10x_FWLib文件夹下面。src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件,每个外设对应一个.c 文件和一个.h 头文件。

 

7、下面我们要将固件库包里面相关的启动文件复制到我们的工程目录CORE之下。

打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,将文件core_cm3.c和文件core_cm3.h复制到CORE下面去。然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,将里面startup_stm32f10x_hd.s文件复制到CORE下面。不同容量的芯片使用不同的启动文件,芯片STM32F103ZET6是大容量芯片,所以选择这个启动文件。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第3张图片

 

 

8、定位到目录:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面将里面的三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到USER目录之下。然后将

STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4个文件main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h复制到 USER 目录下面。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第4张图片

 

9、前面8个步骤,将需要的固件库相关文件复制到了搭建的工程目录下面,下面将这些文件加入工程中去。右键点击 Target1,选择 Manage Project Items。将Target名字修改为Test,然后在Groups一栏删掉一个 Source Group1,建立三个新的 Groups:USER、CORE、FWLIB,分别对应总文件夹目录下的Project、CORE、STM32F10x_FWLib文件夹。然后点击 OK,可以看到Target名字以及Groups情况。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第5张图片

 

 

10、下面往Group里面添加我们需要的文件。按照步骤9的方法, 右键点击点击Test,选择选择Manage Project Itmes,然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录。STM32F10x_FWLib/src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close.可以看到 Files 列表下面包含我们添加的文件。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第6张图片

    这里需要说明一下,对于我们写代码,如果只用到了其中的某个外设,就可以不用添加没有用到的外设的库文件。例如只用GPIO,可以只用添加 stm32f10x_gpio.c,而其他的可以不用添加。这里全部添加进来是为了后面方便,不用每次添加,当然这样的坏处是工程太大,编译起来速度慢,可以自行选择。

 

11、用同样的方法,将Groups定位到CORE和Project下面,添加需要的文件。这里CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s (注意,默认添加的时候文件类型为.c,也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型为All files才能看得到这个文件),Project目录下面需要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c。这样我们需要添加的文件已经添加到我们的工程中了,最后点击 OK,回到工程主界面。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第7张图片

 

2019.03.12-使用MDK5搭建STM32基础工程步骤_第8张图片

 

12、接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder for objects…”,然后选择目录为我们上面新建的OBJ目录。这里大家注意,如果我们不设置Output路径,那么默认的编译中间文件存放目录就是MDK自动生成的Objects目录和Listings目录。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第9张图片

 

13、此时,点击编译按钮对工程进行编译,可以看到很多报错,这是因为找不到头文件的原因。

这时就要告诉MDK,在哪些路径之下搜索需要的头文件,也就是头文件目录。这里要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来。回到工程主菜单,点击魔术棒,出来一个菜单,然后点击c/c++选项.然后点击Include Paths 右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK.

    然后在c/c++页面填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到Define输入框里面(请注意,两个标识符中间是逗号不是句号,如果您不能确定您输入的是正确的,请直接打开我们光盘任何一个库函数实例,然后复制过来这串文字即可)。这里解释一下,如果你用的是中容量那么STM32F10X_HD 修改为STM32F10X_MD,小容量修改为 STM32F10X_LD.  然后点击 OK。

2019.03.12-使用MDK5搭建STM32基础工程步骤_第10张图片

 

2019.03.12-使用MDK5搭建STM32基础工程步骤_第11张图片

 

14、 在main.c文件中写入程序,这次再次编译(记得在代码的最后面加上一个回车,否则会有警告),可以看到,这次编译已经成功了。

 

 

 

 

 

 

你可能感兴趣的:(STM32学习)