如何在 CubeMX STM32 中使用 LL(低级)驱动程序?
Posted
技术标签:
【中文标题】如何在 CubeMX STM32 中使用 LL(低级)驱动程序?【英文标题】:How to use LL (low level) drivers in CubeMX STM32? 【发布时间】:2018-06-06 22:57:26 【问题描述】:我正在使用 STM32CubeMX 为 STM32F103 微控制器创建一个空白项目。使用 HAL 驱动程序(默认),我得到了一个快速运行的示例,但我想尝试使用 LL(低级)驱动程序而不是 HAL。
当我转到 CubeMX 中的项目 > 设置 > 高级设置时,我看到列出的外围设备,每个外围设备旁边都有一个下拉菜单,只有一个选项,HAL。根据文档,这是我可以为每个外围设备选择 LL 或 HAL 的地方。
如何在 STM32CubeMX 中启用 LL 驱动程序?
详细信息:我在 Ubuntu (16.04) 上全新安装了 STM32CubeMX (4.23.0),并为 STM32F103C8 微控制器创建了一个新项目(这是在“Blue Pill”板上)。我使用的是 SW4STM32 IDE,除了我必须在配置文件中选择 STLink V2 而不是 V2.1 之外,其他所有东西或多或少都是开箱即用的。
【问题讨论】:
改用裸寄存器。忘记那些 ll 库。您不需要启用任何东西。只需使用 ll 函数。 STM32CubeMX 手册中的此信息不适用于 F0 系列。我能够为 STM32F030F4P6(另一种便宜的 MCU)生成 LL 驱动程序。 查看最后一次 Cube 更新,LL 对 F1 的支持现已启用 【参考方案1】:来自高级设置下的项目经理 从驱动程序选择器中,您可以将所有外围设备的 HAL 更改为 LL
【讨论】:
虽然不是每个外围设备都列在那里。例如,外部中断驱动程序未列出,因此不能设置为“LL”,即使驱动程序文件夹中存在stm32g4xx_ll_exti.h
。【参考方案2】:
目前 (STM32CubeMX v4.23.0) LL 驱动程序仅针对 L1、L4、F2、F4、F7 系列生成。请参阅章节 6.2 使用低层驱动程序生成 STM32Cube 代码 对于 STM32L1、STM32L4、STM32L4+、STM32F2、STM32F4 和 STM32F7 系列, STM32CubeMX 允许基于以下任一方法生成外设初始化代码 外围 HAL 驱动程序或外围低层 (LL) 驱动程序。
http://www.st.com/content/ccc/resource/technical/document/user_manual/10/c5/1a/43/3a/70/43/7d/DM00104712.pdf/files/DM00104712.pdf/jcr:content/translations/en.DM00104712.pdf
【讨论】:
随着最后的 Cube 更新,ST 也为 F1 系列带来了 LL 库支持。 至少在 4.25.1 中,我还可以为 L0 系列 MCU 生成 LL 初始化。以上是关于如何在 CubeMX STM32 中使用 LL(低级)驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章