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,需要注释掉报错的代码:

将这部分注释掉即可发现警告消失了
至此工程新建完毕,我建好的工程链接