keil添加hal库_嵌入式36——基于 HAL 库的工程模板和工程结构

本文详细介绍了如何使用STM32CubeMX创建一个基于HAL库的工程模板。从新建工程目录结构,到添加HAL库、启动文件、关键头文件,再到MDK工程设置和编译配置,每个步骤都进行了详尽的解释,帮助开发者理解并掌握STM32HAL库工程的搭建过程。
摘要由CSDN通过智能技术生成

我们可以使用ST官方的 STM32CubeMX 图形工具生成一个工程模板

这里之所以还要新建一个模板,是为了对工程新建运行过程有一个深入的理解,这样在日后的开发中遇到任何问题都可以得心应手的解决。

在新建模板之前之前,要准备如下资料:

1) HAL 库开发包: STM32Cube_FW_L4_V1.13.0 这是 ST 官网下载的 STM32CubeL4 包完整版, 可以直 接去 ST官网进行下载,下载地址:https://www.st.com/content/st_com/zh/extended-query.html?querycriteria=productId=LN1897$$associatedTo=FM141。

2) MDK5.25 开发环境

新建基于 HAL 库工程模板

1)在建立工程之前,在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里建立一个文件夹为 Template。这是工程的 根目录文件夹

然后为了方便我们存放工程需要的一些其他文件,这里我们还新建下面 4 个子文件夹CORE , HALLIB, OBJ 和 USER。至于这些文件夹名字,实际上是可以任取的,我们这样取名只是为了方便识别。新建好的目录结构 如下图.

9c01e35730d2b9fcf5c126ef46527824.png

2) 接下来, 打开 MDK, 点击菜单 Project –>New Uvision Project , 然后将目录定位到刚才建立的文件夹 Template 之下的 USER 子目录, 工程取名为 Template 之后点击保存, 工程文件就都保存到 USER 文件夹下面。 操作过程如下图所示:

e8745af6748ce46a96e43855b0ab4d51.png

f3d94b012e67a8307f8409ec5c2ce154.png

接下来会出现一个选择 Device 的界面,就是选择我们的芯片型号,根据自己使用的芯片型号依次选择即可。 例如STM32L4 开发板使用的是 STM32L475VET6 芯片,那么依次选择 STMicroelectronics→STM32L4 Series→STM32L475→STM32L475VE→STM32L475VETx(如果使用的是其他系列的芯片,选择相应的型号就可以了, 特别注意:一定要安装对应的器件 pack 才会显示这些 内 容 ,必须先安装 MDK 才能安装 pack 包)。

39c867162453a913c045235f1c2098d5.png

点击 OK, MDK 会弹出 Manage Run-Time Environment 对话框, 如图所示:

e14ba463cb1e5f98d6a8182b4cc01e41.png

这是 MDK5 新增的一个功能,在这个界面,我们可以添加自己需要的组件,从而方便构建开发环境。在图所示界面,我们直接点击 Cancel,即可,得到如图所示界面:

ffda8f5a9f11b7dcff2fbb4a0d5470b0.png

3) 现在我们看看 USER 目录下面内容,如下图:

4010309b1b90d1e94cc063fe472ac99b.png

Template.uvprojx 是工程文件非常关键不能轻易删除, MDK5.25生成的工程文件是以.uvprojx 为后缀。 DebugConfig, Listings 和 Objects 三个文件夹是 MDK 自动生成的文件夹。其中 DebugConfig 文件夹用于存储一些调试配置文件, Listings 和 Objects 文件夹用来存储 MDK 编译过程的一些中间文件。这里,我们把 Listings 和 Objects 文件夹删除,会在下一步骤中新建一个 OBJ 文件夹,用来存放编译中间文件。当然,不删除这两个文件夹也没有关系,只是我们不用它而已。

4) 接下来我们将从官方 STM32CubeL4 包里面复制一些我们新建工程需要的关键文件到我们的工程目录中。 首先,我们要将 STM32CubeL4 包里的源码文件复制到我们的工程目录文件夹下面。打开官方 STM32CubeL4 包,定位到我们之前准备好的 HAL 库包的目录:STM32Cube_FW_L4_V1.13.0Drivers 下面,将目录下面的 STM32L4xx_HAL_Driver 文件夹复制到我们刚才建立的 HALLIB 文件夹下面复制完成以后将 STM32L4xx_HAL_Driver

Version: 2.15.0 (2020-09-28) Keil.STM32F4xx_DFP.2.15.0.pack Download Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.25.1 using HAL Drivers V1.7.9. STM32CubeMX integration (Version 6.0.1): Added support for Timebase Source TIMx (FrameworkCubeMX_gpdsc.ftl). Removed non-existent include path. CMSIS Flash Algorithm: Corrected STM32F42xxx_43xxx_OPT Algorithm. CMSIS SVD: Updated STM32F42*.svd, STM32F43*.svd files. CMSIS-Driver: I2C: Corrected 2 byte reception in master mode. MCI: Replaced empty delay loops with _NOP(). SPI: Corrected PowerControl function (to return error if Initialize was not called, to abort active transfer if power off was requested). Updated GetDataCount function to give accurate count in DMA mode. Corrected Control function (abort in DMA mode, software controlled slave select in slave mode, TI Frame Format selection, ignore bus speed for slave mode). Corrected Uninitialize function (to power off the peripheral if it is powered). Corrected SPI3_SCK pin configuration. Corrected DMA MemDataAlignment configuration. USART: Corrected DMA MemDataAlignment configuration. USBD_HS/USBH_HS: OTG_HS ULPI clock disabled in low power if internal PHY is used to enable proper operation of OTG_HS port in FS mode during CPU sleep. CAN/EMAC/USBD/USBH: Removed macros already provided by cmsis_compiler.h. Updated Boards Examples: Migrated CubeMX projects to V6.0.1 and updated config files. Changed variant selection to "MDK-Plus" where possible. Updated all USB Host/Device examples with user templates from MDK-Middleware v7.11.1. Terminating app_main thread with osThreadExit() to avoid endless loop Updated MS Windows UBS driver files.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值