STM32的HAL和LL库区别和性能对比

STM32的LL库和HAL库各有特点。LL库适用于小容量MCU,提供更高效率,接近寄存器级操作;HAL库则注重可移植性,允许部分优化。开发者可根据项目需求选择,如追求效率,STM32CubeLL是好选择,而需要移植性则可结合使用HAL和LL。官方数据显示,CubeLL的效率接近直接操作寄存器,且CubeMX已支持生成CubeLL工程,便于高效开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LL库和HAL库简介

LL:Low-Layer,底层库
HAL:Hardware Abstraction Layer,硬件抽象层库

LL库和hal库对比,很精简,这实际上是一个精简的库。

LL库的配置选择如下

在STM32CUBEMX中,点击菜单的“Project Manager”–>“Advanced Settings”,在下面的界面中选择“Advanced Settings”,然后在每个模块后面选择使用的库
在这里插入图片描述
在这里插入图片描述

总结:

1、如果使用的MCU是小容量的,那么STM32Cube LL将是最佳选择

2、如果结合可移植性和优化,使用STM32Cube HAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和LL可以部分并发使用(对于同一个外设,HAL和LL不可能并发运行),也可以使用混合的HAL和LL实现来获得上述相同的优势。

STM32使用HAL库、标准库、LL库和寄存器操作的性能对比

介绍

stm32开发时,选用不同库的开发难度和速度相差可能很大,相应的,开发出来的代码运行性能也会有很大差别。

下图是官方给出的几个常用功能:GPIO 翻转、TIM PWM 输出、ADC DMA 数据采集和 DMA M2M ,使用不同库开发出来的运行结果,可供大家参考对比,做出符合自己开发项目需要的选择。
在这里插入图片描述

总结

代码效率与移植性成反比的规律是明显的。但与 Cube HAL 相比, Cube LL 的效率优势还是很明显的,几乎和直接写寄存器的效率相差无几。而且目前 STM32cubeMX 已经开始支持直接生成使用 Cube LL 的工程,对于以后追求效率的开发应用人员来说,非常值得推荐给大家使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值