26.3.7 ZD-EP27 [Keil/HAL] 新建HAL库版本工程流程*基于寄存器版本的增删

HAL库版本的工程框架和寄存器版本整体大差不差,区别主要是在部分文件夹引入了HAL库相关文件

寄存器版本新建工程流程见下:

26.2.28 ZD-EP22 [Keil新建工程-寄存器版本] 新建寄存器版本工程流程
新建工程好复杂,但是养成习惯应该会很好 1 新建工程文件夹 首先在新建的工程文件夹的根目录下创建五个文件夹,分别是Drivers,Middlewares,Output,Projects,User。其用处如下: 文件夹名称 作用 Drivers 存放与硬件相关的驱动层文件 Middlewares 存放正点原子提供的中间层组件文件和第三方中间层文件 Output 存放工程编译输出文件 Projects 存放 MDK 工程文件 User 存放用户编写的代码,如 main.c 接下来进入到Drivers文件夹,再创建三个文件夹,分别是BSP,CMSIS,SYSTEM。其作用如下: 文件夹名称 作用 BSP 存放开发板板级支持包驱动代码,如各种外设驱动 CMSIS 存放 CMSIS 底层代码,如启动文件(.s 文件)、stm32f4xx.h 等 SYSTEM

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库版本的模板:

欢迎订阅 Subscribe to 沿江路右转Turn Right at Yanjiang Rd.

期待您的精彩评论 Looking forward to your wonderful comments.
[email protected]
订阅 Subscribe
赣ICP备2026002696号