1. 为本项目创建一个工程
1)建立工程文件夹
为了工程目录更加清晰,在本地电脑上新建一个“Template”文件夹,在它之下再新建6 个文件夹,文件夹功能如下表所示;
名称 | 作用 |
Doc | 用来存放程序说明的文件,由开发人员添加 |
Libraries | 存放库文件 |
Listing | 存放编译器编译时产生的C/汇编/链接文件的列表清单 |
Output | 存放编译产生的调试信息,HEX文件,预览信息,封装库等 |
Project | 存放工程文件 |
User | 用户编写的驱动文件 |
创建好的文件夹目录,如下图所示;
图1 项目目录结构
2)新建工程
打开集成开发环境,新建一个工程,如下图所示;
图2 新建工程
设置工程名可任意,此处命名为“Template”,保存在工程文件夹的Template\Project文件夹下,如下图所示;
图3 保存工程
点击保存以后,选取芯片型号。这个芯片型号既是开发板的主芯片(STM32F103VE)。
注意:如果这里没有出现相应CPU型号,是因为 集成开发环境没有添加上芯片包 。可以参考“任务3-开发平台搭建”章节重新安装芯片包。
图4 选取芯片型号
随后可能会弹出添加库文件窗口,直接关掉即可,如下图所示;
图5 添加库文件窗口
3)添加组文件夹
工程新建完成以后需要添加组文件夹。在工程目录“Target 1”右键单击“Add Group…”即可添加组文件夹,添加完成后可进行重命名,如下图所示;
图6 添加组文件夹
由于被项目工程文件较多,需要将其进行分类。所以这里需要添加多个“Group(文件夹)”,如下表所示;
名称 | 作用 |
STARTUP | 用于存放启动文件 |
CMSIS | Cortex-M3内核相关文件 |
FWLB | 存放固件库 |
USER | 用户编写的文件 |
DOC | 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等 |
添加完成后项目工程列表,如下图所示。
图7 项目工程列表
4)在组文件夹中添加文件
每个组文件夹中需要添加的文件,组文件夹中包含的文件,如下表所示;
名称 | 需要添加的文件 |
STARTUP | startup_stm32f10x_hd.s |
CMSIS | core_cm3.c、core_cm3.h 、system_stm32f10x.c、system_stm32f10x.h、stm32f10x.h |
FWLB | 存放固件库,暂时不需要添加 |
USER | 用户文件,暂时不需要添加 |
DOC | 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等 |
这些文件已经提供好,在“\任务4-建立工程模板\启动及内核文件”文件夹下。
首先,把“启动及内核文件”中的“startup_stm32f10x_hd.s”文件复制到工程文件夹“Template\Libraries\STARTUP”中(STARTUP为新建的文件夹)。
图8 STARTUP目录
然后,将“启动及内核文件”中的core_cm3.c、core_cm3.h 、system_stm32f10x.c、system_stm32f10x.h、stm32f10x.h文件复制到工程文件夹Template\Libraries\CMSIS中(CMSIS为新建的文件夹),如下图所示。
图9 CMSIS目录
将文件复制到Template文件中,还需要将该文件添加到工程中。双击“STARTUP”,在弹出的窗口中选择startup_stm32f10x_hd.s,点击“Add”即可。
图10 将文件添加到工程
使用同样的方法将core_cm3.c、system_stm32f10x.c文件添加到“CMSIS”文件夹中,如下图所示。
图11 工程目录结构
2. 环境配置
工程建立完成以后需要对软件编译环境进行设置。点击项目配置图标,弹出设置窗口,如下图所示;
图12 项目配置
Output 选项卡中把输出文件夹定位到工程目录下的output 文件夹,如果想在编译的过程中生成hex 文件,那么将Create HEX File 选项勾上,如下图所示;
图13 Output 选项卡
在Listing 选项卡中把输出文件夹定位到我们工程目录下的Listing 文件夹,如下图所示;
图14 Listing 选项卡
在C/C++选项卡中添加处理宏(STM32F10X_HD, USE_STDPERIPH_DRIVER)及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。
图15 C/C++选项卡
在这个选项中添加宏,就相当于在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
STM32F10X_HD 宏:为了告诉STM32 ,使用的芯片类型是STM32 型号是大容量的,使STM32 标准库根据选定的芯片型号来配置。
USE_STDPERIPH_DRIVER 宏:为了让stm32f10x.h 包含stm32f10x_conf.h 这个头文件。这个地方需要注意,宏的中间用英文的“逗号”隔开。