新建工程模板
Stm32新建工程模板步骤如下:
1、首先新建一个工程文件夹(英文命名)作为工程根目录
2、在文件夹中新建USER子目录文件夹
3、打开keil软件,点击菜单:Project=》New Uvision Project,然后定位到刚才建立的USER文件夹下边,工程文件就保存到USER下面,工程命名为SmartSensor
4、选择CPU界面,即选择芯片型号,我用的型号为STM32F103ZET6,所以选择该型号即可
点击ok,MDK会弹出 Manage Run-Time Environment 对话框,如图所示
直接点击cancel即可,得到如图 所示界面
至此为止我们只是建立了一个框架,还需要添加启动代码。现在USER目录下包含2文件夹和2个文件
5、在SmartSensor工程目录下边,新建CORE,OBJ以及STM32F10x_FWLib文件夹。CORE用来存放核心文件和启动文件,OBJ是用来存放编译过程及hex文件,STM32F10x_FWLib用来存放ST官方提供的库函数源码文件,USER目录除了用来放置工程文件外,还用来存放主函数文件main.c及system_stm32f10x.c等
6、打开官方固件库包,定位到准备好的固件库包目录,将src,inc文件夹拷贝到STM32F10x_FWLib文件夹下
7、打开官方固件库包,定位到目录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\a rm,将 startup_stm32f10x_hd.s文件复制到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、前面 8 个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将 这些文件加入我们的工程中去。右键点击Target1,选择 Manage Project Items。 Project Targets一栏,我们将Target名字修改为SmartSensor,然后在Groups一栏删掉一个Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况。
10、接下来我们往Group里边添加文件,邮件SmartSensor,选择Manage Project Item,然后选择需要添加文件的Group,优先的,选择FWLIB,点击右边的Add Files,定位到刚才建立的目录STM32F10x_FWLib/src 下边,将所有文件选中,然后点击Add,然后close,得到的结果如下:
11、用同样的方法,将Group定位到CORE和USER目录下,添加需要的文件,CORE下边需要添加的文件为core_cm3.c,startup_stm32f10x_hd.s.USER目录下需要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c,最后点击ok,至此需要添加的文件已经添加到我们的SmartSensor工程中了
12、接下来是编译工程,在编译之前我们首先要选择编译文件编译后存放的目录。点击魔术棒,然后选择Output选项下边的select folder for objects,然后选择目录为我们上面新建的obj目录。
13、下面我们点击编译按钮,编译工程,可以看到很多报错,因为找不到头文件
14、点击魔术棒,然后点击c/c++选项,然后点击Include path右边的按钮,弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去
15、接下来编译工程,同样会发现报了很多同样的错误,这是因为3.5版本的库函数在配置选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量,定位到c/c++界面,然后填写”STM32F10X_HD,USE_STDPERIPH_DRIVER”到Define输入框里面。
16、接下来还需要配置,让编译之后能够生成hex文件,点击魔术棒,选择output,选择creat HEX_File
17、重新编译代码,可以看到生成了hex文件在OBJ目录下面,这个文件我们用flymcu下载到mcu即可。至此,一个完整的基于固件库的模板就制作完成了。