STM32CubeIDE无法为 RCC、ADC 或 USART 设置 LL 库
在STM32CubeIDE用 HAL 做了一个应用程序,在 Project Manager, Advanced Settings 页面,选择了 LL 库而不是 HAL。但是目前只有 GPIO LL 库是可选的,无法为 RCC、ADC 或 USART 设置 LL 库。
这个问题如何破。
STM32CubeIDE 里确实有些外设的 LL 选项默认是灰色的,可能是 CubeMX 版本的问题,你用的是哪个版本? 试试先创建一个 HAL 工程,然后手动把 stm32xxxx_ll_xxx.c 和 stm32xxxx_ll_xxx.h 文件加到工程里,应该可以用。 你可以在 Drivers/STM32xxxx_LL_Driver 目录下看看,有没有 stm32xxxx_ll_rcc.c、stm32xxxx_ll_adc.c 这些文件,如果没有,可能需要手动添加。 LL 库和 HAL 可以混用,你可以在 HAL 工程里直接包含 LL 头文件,比如 #include "stm32xxxx_ll_rcc.h",然后用 LL API 操作。 你用的是哪个 STM32 芯片?有些芯片的 LL 库支持度不一样,CubeMX 可能不会自动生成。 你可以手动修改 stm32xxxx_hal_conf.h,把 #define USE_FULL_LL_DRIVER 打开,这样应该能启用 LL 库支持。 试试更新 STM32CubeMX 和 CubeIDE,可能是旧版本的问题,新版可能修复了 LL 选项不可选的 bug。 如果只是 RCC、ADC、USART 这些模块要用 LL,你可以直接查阅官方 LL 库的 API 文档,手写初始化代码,不一定非要 CubeMX 生成。 LL 库比 HAL 库更贴近寄存器级别,初始化代码比较短,你可以参考官方的 LL 库示例,把对应的初始化代码手写进去。 你可以在 CubeMX 生成 HAL 工程后,手动改成 LL,比如替换 HAL 的 HAL_RCC_XXX() 调用为 LL_RCC_XXX(),手动实现 LL 方式的初始化。 用的STM32CubeMX和STM32CubeIDE的最新版本! 考虑使用其他开发工具,如Keil 、IAR等。 手动添加LL库代码。 可以考虑使用HAL库。
页:
[1]