STM32F407VET6 使用 V1.9.0 标准库创建工程#
1. 新建项目目录#
对于完全新建的工程,需要自己新建一个空的工程目录,新建一个文件夹,下面放 5 个子文件夹,分别命名 Core、Hardware、Library、System、User,每个文件夹在后续会放置不同的工程文件
2. 下载 STM32 固件库#
STM32 固件库包含了 STM32 外设对应的库函数 c 文件和 h 文件,以及必需的启动文件等,固件库同样的需要到官网下载,这里我提供蓝奏云下载
3. 将固件库中的文件拷贝到工程路径#
首先需要将固件库中的外设文件拷贝到工程路径中,将固件库路径 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver
下的src
和inc
文件夹拷贝到工程目录Library
下,其中src
存放的是 固件库的.c
文件,inc
存放的是对应的.h
文件
拷贝固件库\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\ Templat es\arm
到工程目录Core
下,文件startup_stm32f40_41xxx.s
为启动文件
拷贝固件库 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Includ 如下相关核心文件到工程目录 CORE 下
现在工程目录Core
下已经拷贝了这些文件
将固件库 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\ STM32F4xx_StdPeriph_Templates 拷贝到工程目录 USER 下
4.Keil 新建工程#
打开 Keil5,顶部菜单栏选择 Project→New uVision Project
创建新工程,如果有其他工程,先点击 Project->Close Project
保存到刚刚我们新建文件夹的目录下,保存文件名为STM32F407VEProject
选择芯片STM32F407VETx
点击 OK,然后关闭下面窗口
点击Manage Project Items
修改成以下形式
向Core
添加以下文件
向Library
添加Library/src
文件夹内所有文件
向User
添加以下文件
点击 OK 关闭窗口
点击魔术棒,添加文件路径
添加以下路径
点击 OK,再添加全局宏定义标识符STM32F40_41xxx,USE_STDPERIPH_DRIVER
再点击 OK
点开main.c
, 将内部数据清空,仅留下主函数
再将User
分组下面的 stm32f4xx_it.c
文件内删掉其中的32
行对main.h
头文件的引入以及 144
行 SysTick_Handler
函数内容
最后点开Library
找到stm32f4xx_fmc.c
, 右键Options
将include in Target Build
前面的勾去掉,
stm32f4xx_fmc.c
比较特殊。这个文件是STM32F42
和STM32F43
系列才用到,所以我们这里要把它移除出工程(注意是 stm32f4xx_fmc.c ,不是 stm32f4xx_fsmc.c)。
移除 FMC 和 FSMC 后在在编译有可能会发生以下情况:
编译完成后我们发现还有错误,用鼠标双击错误信息找到报错的地方
原因是重复定义了,算是官方 bug,需要注释掉报错的代码:
将这部分注释掉即可发现警告消失了
至此工程新建完毕,我建好的工程链接