STM32学习笔记(一) 工程模板
一、前言
本文根据正点原子STM32F407开发指南整理,用来个人学习笔记,不足之处欢迎指出。
二、准备资料
- STM32F4固件库包 (我使用的是1.4版本) 如需要可以去正点原子论坛下载。
- 默认已安装MDK5
三、创建工程模板
- 创建一个文件夹命名为 Template 并在该目录下创建5个子文件夹分别命名: core、fwlib、obj、system、user。
- 打开MDK5创建工程,目标文件夹为user。并取名为 Template ,选中相应的芯片型号。
- 进入固件库文件目录下\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver将该目录下inc、src两个文件夹复制到Template\fwlib\下
- 将固件库包里面相关的启动文件(路经:\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm)startup_stm32f40_41xxx.s 复制到我们的工程目录 core 之下。然后定位到路经(\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Includ)将该路径下core_cm4.h、 core_cm4_simd.h、 core_cmFunc.h 以及 core_cmInstr.h四个头文件复制到core目录下
- 成复制工程模板需要的一些其他头文件和源文件到我们工程 首先定位到路径(STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include)将2 个头文件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 user目录之下。然后
进入目录\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates ,
将 目 录 下 面 的 5 个 文 件 main.c , stm32f4xx_conf.h , stm32f4xx_it.c , stm32f4xx_it.h ,
system_stm32f4xx.c 复制到 USER 目录下面。 - 通过前面 5个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件添加到工程中
- 在MDK5工程中创建以下文件夹如图
- 分别在相应文件夹中添加文件如下图
其中fwlib中添加的是fwlib\src下除了stm32f4xx_fmc.c外所有的文件,system忽略
- 接下来我们要在 MDK 里面设置头文件存放路径。也就是告诉 MDK 到那些目录下面去寻
找包含了的头文件。这一步骤非常重要。 如果没有设置头文件路径,那么工程会出现报错
头文件路径找不到。 具体操作如下图, 5 步之后添加相应的头文件路径。(此步骤摘自正点原子开发指南) - 接下来对于 STM32F40 系列的工程,还需要添加一个全局宏定义标识符。添加方法是点击
魔术棒之后,进入 C/C++选项卡,然后在 Define 输入框连输入:
STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxx
和 USE_STDPERIPH_DRIVER, 他们之间是用逗号隔开的,请大家注意。 - 下面修改main文件如图
- 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。
方法是点击魔术棒 ,然后选择“Output”选项下面的“Select folder for objects…” ,
然后选择目录为我们上面新建的 OBJ 目录。 同时将下方的三个选项框都勾上,操作过程如
图 - 编译后会出现一个错误,双击错误注释掉即可。
四、总结
本文对不太熟悉MDK5的读者不友好,具体细节请参考正点原子官网的开发指南。