一. 需要准备的资料及环境:
1.STM32固件库,我们使用的固件库为STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下载
2.MDK开发环境(我们使用的版本为MDK4.7A)。
2.在建立工程之前,建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里我们建立一个文件夹为: STM32_IAP.在该文件夹下再创建CORE、OBJ、STM32F10x_FWLib、USER等文件夹,USER用来保存工程,CORE用来存放核心文件和启动,OBJ是用来存放编译过程文件以及 hex 文件,STM32F10x_FWLib 文件夹用来存放ST 官方提供的库函数源码文 官方提供的库函数源码文 官方提供的库函数源码文 官方提供的库函数源码件。
4.接下来会出现一个选择Device的界面,我们选择STM32F103C8(如果是其他芯片,请选择对应的型号)。
5.弹出对话框“ Copy STM32 Startup Code to project ….”,询问是否添加启动代码到工程中,选择“否”,”,因为使用的 ST 固件库文件已经包含了启动文件。
6.下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。
打开官方固件库包,定位到我们之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,将目录下面的src,inc文件夹copy到我们刚才建立的STM32F10x_FWLib文件夹下面。src存放的是固件库的.c文件,inc存放的是对应的.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下面,将里面所有的文件同样复制到CORE下面
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目录下面。
9.前面的步骤,我们将需要的固件库相关文件复制到工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击Target1,选择Manage Components
11.往Group里面添加我们需要的文件。我们按照步骤10的方法, 右键点击点击IAP-Bootloader,选择选择Manage Components.然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,选择需要的文件,然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件。
13.点击魔术棒,出来一个菜单,然后点击 c/c++选项.然后点击Include Paths右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK.
14.配置一个全局的宏定义变量。按照步骤13,定位到c/c++界面,然后copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。这里解释一下,如果你用的是大容量那么STM32F10X_MD修改为STM32F10X_HD,小容量修改为STM32F10X_LD。
15.配置Output选项。定位到Output界面,点击Select Folder For Obiects...将目标文件选择到OBJ文件夹下。然后勾上下三个选项。其中Create HEX file是编译生成hex文件,Browser Information是可以查看变量和函数定义
16..配置Debug选项。定位到Debug界面,选择ST-Link Debugger(按实际用的工具选择),勾选Use,点击右边的Setting选项,在弹出的Cortex-MTarget Driver Setup窗口中选择SW(按实际选择),选择确定。
17.配置Utilities选项。(1)定位到Utilities界面;(2)选择ST-Link Debugger(按实际用的工具选择);(3)点击右边的Setting选项;(4)在弹出的Cortex-MTarget Driver Setup窗口按下图红框4选择;(5)点击下方ADD;(6)在弹出的Add Flash Programming Algorithm菜单中选择STM32F10X Med-density Flash(按实际对应芯片选择);(7)选择完后点击Add;(8)选择确定,回到上一菜单后再次选择确定,回到主界面。
18.编写简单main函数,点击进行编译,编译完成后在OBJ文件夹中生成.hex文件
19.用ST Link将MCU与PC连接好后,点击将.hex文件下载到MCU中。