26.3.7 ZD-EP27 [Keil/HAL] 新建HAL库版本工程流程*基于寄存器版本的增删
HAL库版本的工程框架和寄存器版本整体大差不差,区别主要是在部分文件夹引入了HAL库相关文件
寄存器版本新建工程流程见下:

1 新建工程文件
首先根目录下依旧是五个文件夹:Drivers,Middlewares,Output,Projects,User
来到Drivers文件夹,除BSP,CMSIS,SYSTEM文件夹外多了一个STM32F4xx_HAL_Driver文件夹用于储存HAL库的驱动文件,该文件来自官方Cube固件包(以下简称Cube)下的Drivers文件夹,直接复制粘贴过来即可,之后删除掉多余文件

之后来到User文件夹,我们要在其中导入stm32f4xx_hal_conf.h(HAL库用户配置文件),stm32f4xx_it.c(中断函数),stm32f4xx_it.h,这三个文件来自Cube/Projects/STM324xG_EVAL\Templates下的Inc和Src文件夹(是的居然是来自别的例程)
剩下的部分就与寄存器版本基本一致了
2 新建工程框架
与寄存器版本完全一致
3 创建分组 添加文件
分组部分在原先的基础上再添加一个Driver/STM32F4xx_HAL_Driver的分组
文件部分就是区别最大的部分了,这里先直接给出最后的所有文件:

其中Startup与SYSTEM分组的内容与寄存器版本一致,User分组中的system_stm32f4xx.c(时钟初始化文件)并不直接来自User文件夹,而是来自Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates下的一个文件
而HAL_Driver下的文件来自HAL库驱动文件下的Scr文件夹,按需添加,也可全部添加,这里给出的是按需添加的应有文件
4 魔术棒设置
区别在于C/C++选项卡,全局定义需添加USE_HAL_DRIVER,STM32F407xx用于唤醒HAL库相关函数,此外头文件包含路径还填加了..\..\Drivers\STM32F4xx_HAL_Driver\Inc
头文件包含路径本质上可以理解成工程文件夹中所有Include相关文件所在的路(User和Middlewares除外)
其余设置基本一致
5 添加main.c,开始编写代码
结语
对于HAL库的相关理解在前几期视频里面有介绍,后续有相关需求再进行阐述
这里顺便给出HAL库版本的模板:
