1 新建HAL版本工程模板 STM32Cube 官方固件包在 ST 公司的官网可以免费下载,网址为: https://www.st.com/content/st_com/en.html 2 新建工程文件夹 真正开发 STM32 项目,就不是简单一两个 .c 和 .h 文件那么简单了,而是有几十个甚至更多的文件构成,通过某些组织形式形成的工程文件。 我们先在任意一个位置(比如桌面)创建一个文件夹,命名为 stm32f103c8t6_template ,当然你命为其它名字也可以。 创建的工程模板由下面 5 个目录构成: 2.1 Drivers文件夹 Drivers 文件夹里面又包含了 4 个文件夹,它们的作用如下: 2.2 BSP文件夹 平时所写的 LED 驱动、蜂鸣器驱动、ESP8266驱动等等,都是放在这个目录下面。 但由于咱这是工程模板,就先不考虑这些驱动了,所以这个目录就暂时为空就好,等后面用到什么外设再具体添加对应的文件即可。 2.3 CMSIS文件夹 将官方提供的固件包下载,然后按下图提示进到 CMSIS 目录。 但这个 CMSIS 目录太过于庞大了,我们可以按以下步骤进行精简。 此外,在 CMSIS 文件夹下还需要拷备一个 Include 目录,使用 STM32CubeMX 随便生成一个工程文件,然后找到下面这些文件,直接拷过来即可 2.4 SYSTEM文件夹 这个文件夹主要存放的是一些常用的系统级核心驱动代码,比如说时钟配置、延时函数、串口等等,像这些配置都是非常经常用到, 在这里我们直接使用正点原子给我们提供的三个模块代码,没法必要自己造轮子。 找到任何一个正点原子的项目(HAL版本),然后把整个 SYSTEM 文件夹拷备到 Drivers 目录下 我们没必要每次都自己手写,直接复用即可。 2.5 STM32F1xx_HAL_Driver文件夹 ST 公司提供的 HAL 库驱动源码都是放在这个文件夹里,这个直接从固件包里拷过来就可以了,路径如下: 但进到这个目录后会发现,里面有很多东西,我们删掉其余的内容,只保留 Inc 及 Src 这两个文件夹即可。 2.6 Middlewares文件夹 这个文件夹主要存放的是中间层代码(组件/Lib 等),比如:FATFS、USB、LWIP、FreeRTOS,各种 GUI 等等。但作为模板工程,这些东西我们就先不添加,整个文件夹留空即可。 2.7 Output文件夹 该文件夹用于存放编译器编译工程输出的中间文件,比如:.hex、.bin、.o 文件等,所以我们暂时无需主动往里面放东西。 2.8 Projects文件夹 该文件夹用于存放编译器的工程文件。不同的开发工具所产生的工程文件是不一样的,常见的开发工具有:MDK、IAR ,等等。但我们最常用的还是 MDK ,所以我们就可以在这个文件夹下创建一个 MDK-ARM 文件夹。 如果你使用其它开发工具,那么就创建一个对应的文件夹就可以了。 2.9 User文件夹 该文件夹用于存放用户编写的代码,如:HAL 库用户配置文件、main.c 文件、中断处理文件,以及分散加载文件等。 在这个文件夹里,我们需要将下面那三个文件拷贝到这里来(也是在官方固件包中): 3 项目工程文件夹树状图