• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32 HAL库、标准外设库、LL库的比较

夕阳接你 2019-01-06 浏览量:2576
STM32 HAL库、标准外设库、LL库的比较,各有什么差异和优势?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 标准库:是早期出来的库,个人觉得使用还是很方便,但是ST现在对新出的器件已经不怎么支持了。

    HAL:这个库是近几年出来的,ST几乎将现在的精力都放在这个库上,配合CubeMX软件,HAL使用起来还是很方便,

              但是这个库太占用FLASH,程序里面的无用代码比较多。

    LL库:是对HAL的一个补充,精简HAL里面的结构,也可以使用CunbeMX软件。


    开发的时候,一般是HAL+LL库的方式。但是即使使用这种方式,最后的HEX程序尺寸还是远大于标准库开发的方式。

    • 发布于 2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:13
  • LL库是寄存器库,标准库是寄存器封装后的函数库,HAL已经完全看不到寄存器,只需要用几个功能函数就能实现功能。HAL库更像是Arduino开发简单方便,标准库适合有经验的快速开发,LL库适合对性能和稳定性、可定制性要求的,目前官方已不再最新的MCU上开发标准库,用LL库和Hal库是趋势,但是HAL库会适当拖累单片机性能,LL库开发需要有单片机寄存器硬件开发基础。
    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

  • hal通用型强,但是效率低,标准库适中,ll库是寄存器操作效率最高

    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先说,标准外设库官方已经不再维护,将来的新器件也不提供了。

    HAL库的封装做得非常好,几乎到了傻瓜的地步。但付出的代价是代码量大、内存占用高和运行效率低。

    LL库是非常接近寄存器的库,它对寄存器的操作封装得比较好。并且大多采用__STATIC_INLINE函数,保证了运行效率。


    个人感觉,HAL库适合入门、快速开发。LL库适合开发高效的产品开发。

    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

  • LL库和HAL库两者相互独立,只不过LL库更底层。而且,部分HAL库会调用LL库(例如:USB驱动)。同样,LL库也会调用HAL库

    用户可以使用STMCubeMX直接生成对应芯片的整个项目(目前主流开发工具的项目基本全支持),STMCubeMX负责给整理各种需要的源码文件。
    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

  • HAL库更抽象,移植性比较好,LL库更接近底层,接近寄存器级别,但是移植性要差点。
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实你现在用的话,就找最近出来的,也是经过精简了,容易上手些,等了解了之后再去比较其他的,这样概念更加清晰
    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库跟LL库是差不多的,比较贴近底层

    HAL库是经过高度封装的,调用起来方便,但是执行效率较低

    • 发布于2019-01-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库已经不再更新,新出的MCU型号也不支持标准库,只支持HAL和LL,HAL库是用得最多最普遍的,但是实时性低,LL库的书写简单,实时性较高,但是理解起来不如HAL好理解。

    • 发布于2019-01-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。 
    相对于HAL库,标准外设库仍然接近于寄存器操作,主要就是将一些基本的寄存器操作封装成了C函数。开发者需要关注所使用的外设是在哪个总线之上,具体寄存器的配置等底层信息。
    • 发布于2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库的是早期的库,目前都是没有使用标准库了,最新的就是HAL库
    • 发布于2019-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 看你的应用场景和芯片,目前HAL的优势是移植方便,便于维护但是效率不高,标准库效率比较高,但是最新的芯片是没有标准库了
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 这三个都是ST的官方库,最好是还是HAL库,相对移植和维护都很方便,用HAL库更好
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32 HAL库、标准外设库、LL库的比较