乙荒 发表于 2025-12-23 04:40:00

STM32项目添加格外HAL库

需求


[*]在STM32CubeMX中创建项目时,如果只选择了“仅复制必要库文件”(Copy only the necessary library files),生成的代码只会包含项目中已启用的外设对应的HAL源文件。
[*]若后期需要新增未启用的外设(如新的UART、TIMER等),需要手动添加对应的HAL库文件。
已下是添加步骤
注意 我的项目是使用CMake进行管理的

获取完整HAL库


[*]访问ST官网下载对应系列(如F1、F4)的完整Cube包:STM32Cube MCU和MPU包。
[*]下载并解压后,HAL库源码位于 Drivers/STM32F1xx_HAL_Driver 目录下。
复制所需文件到项目中

文件路径如图
YourProject/
├── Drivers/
│   ├── CMSIS/            # CubeMX生成
│   └── STM32F1xx_HAL_Driver/
│       ├── Inc/            # HAL头文件,文件添加到这里
│       └── Src/            # HAL源文件,文件添加到这里
└── CMakeLists.txt          # 项目主CMake文件修改CMake配置

通常CubeMX生成的CMake项目会在 Drivers/STM32F1xx_HAL_Driver 目录下有一个子 CMakeLists.txt,用于管理所有HAL源文件。
在指定位置添加对应c文件
# STM32 HAL/LL Drivers
set(STM32_Drivers_Src
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/system_stm32f1xx.c
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_usart.c
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c
    ${CMAKE_CURRENT_SOURCE_DIR}/../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c
)启用HAL模块宏定义

在 stm32f1xx_hal_conf.h 中启用对应模块。
进入文件搜索对应头文件,发现导入头文件语句是灰的,需要将对应宏定义的注释删除
#ifdef HAL_TIM_MODULE_ENABLED
#include "stm32f1xx_hal_tim.h"// 这些导入语句是灰的,因为对应宏定义被注释了
#endif /* HAL_TIM_MODULE_ENABLED */

#ifdef HAL_UART_MODULE_ENABLED
#include "stm32f1xx_hal_uart.h"
#endif /* HAL_UART_MODULE_ENABLED */

#ifdef HAL_USART_MODULE_ENABLED
#include "stm32f1xx_hal_usart.h"
#endif /* HAL_USART_MODULE_ENABLED */将宏定义的注释删除
#define HAL_UART_MODULE_ENABLED   // 取消这行的注释
#define HAL_TIM_MODULE_ENABLED    // 取消这行的注释现在就可以使用库函数了,导入stm32f1xx_hal.h文件就可以使用对应的句柄和函数了,因为stm32f1xx_hal.h以及包含了stm32f1xx hal conf.h头文件

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

均浇 发表于 2025-12-26 11:56:46

用心讨论,共获提升!

玛凶 发表于 2025-12-31 10:54:42

不错,里面软件多更新就更好了

挫莉虻 发表于 2026-1-17 15:30:52

用心讨论,共获提升!

向梦桐 发表于 2026-1-19 12:23:33

谢谢分享,辛苦了

莘度 发表于 2026-1-20 19:06:08

懂技术并乐意极积无私分享的人越来越少。珍惜

轩辕琳芳 发表于 2026-1-21 17:08:22

前排留名,哈哈哈

煅汾付 发表于 2026-1-24 11:12:13

谢谢分享,辛苦了

醋辛 发表于 2026-1-26 12:27:12

谢谢分享,试用一下

事确 发表于 2026-1-29 02:41:01

感谢分享,学习下。

遇玷 发表于 2026-1-30 04:53:55

喜欢鼓捣这些软件,现在用得少,谢谢分享!

南宫玉英 发表于 2026-1-30 05:15:06

东西不错很实用谢谢分享

挫莉虻 发表于 2026-2-4 07:13:41

这个有用。

鲫疹 发表于 2026-2-5 07:28:39

热心回复!

赵淳美 发表于 2026-2-5 07:38:19

很好很强大我过来先占个楼 待编辑

薯羞 发表于 2026-2-5 08:51:40

懂技术并乐意极积无私分享的人越来越少。珍惜

叟澡帅 发表于 2026-2-7 08:44:08

很好很强大我过来先占个楼 待编辑

巴沛若 发表于 2026-2-8 01:32:11

东西不错很实用谢谢分享

昆拗干 发表于 2026-2-10 17:29:07

懂技术并乐意极积无私分享的人越来越少。珍惜

甄婉丽 发表于 2026-2-11 09:22:31

谢谢楼主提供!
页: [1] 2
查看完整版本: STM32项目添加格外HAL库