小库里 发表于 2025-3-23 09:00

STM32CubeIDE无法为 RCC、ADC 或 USART 设置 LL 库

在STM32CubeIDE用 HAL 做了一个应用程序,在 Project Manager, Advanced Settings 页面,选择了 LL 库而不是 HAL。
但是目前只有 GPIO LL 库是可选的,无法为 RCC、ADC 或 USART 设置 LL 库。
这个问题如何破。



公羊子丹 发表于 2025-3-24 08:17

STM32CubeIDE 里确实有些外设的 LL 选项默认是灰色的,可能是 CubeMX 版本的问题,你用的是哪个版本?

周半梅 发表于 2025-3-24 08:19

试试先创建一个 HAL 工程,然后手动把 stm32xxxx_ll_xxx.c 和 stm32xxxx_ll_xxx.h 文件加到工程里,应该可以用。

帛灿灿 发表于 2025-3-24 08:20

你可以在 Drivers/STM32xxxx_LL_Driver 目录下看看,有没有 stm32xxxx_ll_rcc.c、stm32xxxx_ll_adc.c 这些文件,如果没有,可能需要手动添加。

童雨竹 发表于 2025-3-24 08:21

LL 库和 HAL 可以混用,你可以在 HAL 工程里直接包含 LL 头文件,比如 #include "stm32xxxx_ll_rcc.h",然后用 LL API 操作。

万图 发表于 2025-3-24 08:22

你用的是哪个 STM32 芯片?有些芯片的 LL 库支持度不一样,CubeMX 可能不会自动生成。

Wordsworth 发表于 2025-3-24 08:23

你可以手动修改 stm32xxxx_hal_conf.h,把 #define USE_FULL_LL_DRIVER 打开,这样应该能启用 LL 库支持。

Bblythe 发表于 2025-3-24 08:25

试试更新 STM32CubeMX 和 CubeIDE,可能是旧版本的问题,新版可能修复了 LL 选项不可选的 bug。

Pulitzer 发表于 2025-3-24 08:26

如果只是 RCC、ADC、USART 这些模块要用 LL,你可以直接查阅官方 LL 库的 API 文档,手写初始化代码,不一定非要 CubeMX 生成。

Uriah 发表于 2025-3-24 08:27

LL 库比 HAL 库更贴近寄存器级别,初始化代码比较短,你可以参考官方的 LL 库示例,把对应的初始化代码手写进去。

Clyde011 发表于 2025-3-24 08:29

你可以在 CubeMX 生成 HAL 工程后,手动改成 LL,比如替换 HAL 的 HAL_RCC_XXX() 调用为 LL_RCC_XXX(),手动实现 LL 方式的初始化。

laocuo1142 发表于 2025-3-24 15:46

用的STM32CubeMX和STM32CubeIDE的最新版本!

stormwind123 发表于 2025-3-24 15:49

考虑使用其他开发工具,如Keil 、IAR等。

flycamelaaa 发表于 2025-3-24 19:00

手动添加LL库代码。

powerantone 发表于 2025-3-24 19:20

可以考虑使用HAL库。
页: [1]
查看完整版本: STM32CubeIDE无法为 RCC、ADC 或 USART 设置 LL 库