1. 目录
创建的工程模板由下面 5 个目录构成:


- drivers 存放与硬件相关的驱动层文件
- middlewares 存放中间层文件
- output 存放工程编译输出文件
- project 存放MDK工程文件
- user 存放用户配置文件、中断处理文件及分散加载文件
2. ------Driver文件夹
Drivers 文件夹里面又包含了 4 个文件夹
- BSP 存放开发板级支持包驱动代码,如各种外设驱动
- CMSIS 存放底层代码,如启动文件
- SYSTEM 存放系统级核心驱动代码,如sys.c delay.c usart.c等
- STM32F1xx_HAL_Driver 存放ST提供的F1系列HAL库驱动源码
BSP****文件夹
我们平时所写的 LED 驱动、蜂鸣器驱动、ESP8266驱动等等,都是放在这个目录下面。
CMSIS****文件夹
将官方提供的固件包下载,然后按下图提示进到 CMSIS 目录。
可以使用 STM32CubeMX 随便生成一个工程文件,然后找到下面这些文件,直接拷过来即可。

SYSTEM****文件夹
这个文件夹主要存放的是一些常用的系统级核心驱动代码,比如说时钟配置、延时函数、串口等等,像这些配置都是非常经常用到,我们没必要每次都自己手写,直接复用即可。
Middlewares****文件夹
这个文件夹主要存放的是中间层代码(组件/Lib 等),比如:FATFS、USB、LWIP、FreeRTOS,各种 GUI 等等。但作为模板工程,这些东西我们就先不添加,整个文件夹留空即可。
3 ------Output****文件夹
该文件夹用于存放编译器编译工程输出的中间文件,比如:.hex、.bin、.o 文件等
4 ------Projects****文件夹
该文件夹用于存放编译器的工程文件。不同的开发工具所产生的工程文件是不一样的,常见的开发工具有:
MDK、IAR ,等等。但我们最常用的还是 MDK ,所以我们就可以在这个文件夹下创建一个 MDK-ARM 文件夹。

5 ------User****文件夹
该文件夹用于存放用户编写的代码,如:HAL 库用户配置文件、main.c 文件、中断处理文件,以及分散加载文件等。
在这个文件夹里,我们需要将下面那三个文件拷贝到这里来:


6. 用"品"创建分组、添加文件

依次创建startup分组文件(.s)、User分组文件、SYSTEM分组文件、驱动文件,并添加上文所述包含文件