- 在建立工程之前,建议在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里建立一个文件夹为 Project。在Project文件夹下新建三个文件USER、BOJ、CORE、STM32F10x_FWLib;
- USER:代码工程文件都是放在 USER目录下,还用来存放主函数文件 main.c,以及其他包括system_stm32f10x.c 等等。
- USER目录 CORE:用来存放核心文件和启动文件
- BOJ:是用来存放编译过程文件以及hex 文件
- STM32F10x_FWLib:存放 ST 官方提供的库函数源码文件
2)打开MDK5, 点击 MDK 的菜单: Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹Project 之下的USER目录,我们的工程文件就都保存到 USER 文件夹下面。工程命名为Project ,点击保存。
接下来会出现一个选择 CPU 的界面,就是选择我们的芯片型号。以STM32F103RTC6型号为例,所以在这里我们选择STMicroelectronics→STM32F1 Series→STM32F103→STM32F103RCT6
3) 点击 OK, MDK 会弹出 Manage Run-Time Environment 对话框,直接x掉就好;
x掉后进入以下界面:
4) 现在我们去看看 USER 目录下面包含 32个文件夹和 2 个文件
5)在工程目录下的STM32F10x_FWLib:添加 STM32的固件库文件,STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面的 src,inc 文件;
6) 在工程目录下的CORE :添加core_cm3.c、core_cm3.h 、 startup_stm32f10x_hd.s ;
在以下文件中:
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
startup_stm32f10x_hd.s 不同容量的芯片使用不同的启动文件,芯片 STM32F103RCT6 是大容量芯片,所以选择这个启动文件
7) 在工程目录下的USER :stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h,main.c, stm32f10x_conf.h, stm32f10x_it.c, stm32f10x_it.h
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
8) 前面 7个步骤,已经将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Project Items。
9) Project Targets 一栏,我们将 Target 名字修改为 Project,然后在 Groups 一栏删掉一个 SourceGroup1,建立三个 Groups: USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target名字以及 Groups 情况。
- 下面我们往 Group 里面添加我们需要的文件。我们按照步骤 9 的方法, 右键点击点击Tempate, 选择 Manage Project Itmes, 然后选择需要添加文件的 Group,这里第一步我们选择 FWLIB,然后点击右边的 Add Files,定位到我们刚才建立的目录 STM32F10x_FWLib/src下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件。
- 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里我们的 CORE 下面需要添加的文件为 core_cm3.c, startup_stm32f10x_hd.s (注意,默认添加的时候文件类型为.c,也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型为 All files 才能看得到这个文件), USER 目录下面需要添加的文件为 main.c, stm32f10x_it.c,
system_stm32f10x.c. - 在编译之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder for objects…” ,然后选择目录为我们上面新建的 OBJ 目录。 这里大家注意,如果我们不设置 Output 路径,那么默认的编译中间文件存放目录就是 MDK 自动生成的 Objects 目录和 Listings 目录。
- 添加头文件目录。 这里大家要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来。 回到工程主菜单,点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击Include Paths 右边的按钮。弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添加进去。记住, keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path一定要定位到最后一级子目录。然后点击 OK.
- 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。按照步骤 13,定位到 c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面(请注意,两个标识符中间是逗号不是句号,如果您不能确定您输入的是正确的,请直接打开我们光盘任何一个库函数实例,然后复制过来这串文字即可)。这里解释一下,如果你用的是中容量那么STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD. 然后点击 OK。
15)写一个main函数测试一下是否能够编译通过;
来源:CSDN
作者:99435527
链接:https://blog.csdn.net/qq_42739874/article/details/104037778