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

标准外设库和HAL库的区别是什么?

水目华年 2019-04-26 浏览量:3247
 标准外设库和HAL库的区别是什么?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 标准库和HAL库都是ST公司推出的针对STM系列的外设库,主要是用来直接操作外设的控制,标准库是早期的库,主要是用库直接操作寄存器,执行效率相对较高,但是可移植性并不是很好,HAL库是新推出的版本库 ,主要是添加了很多抽象层的设计,这样耦合度更低,方便移植的操作,但是执行效率比标准库要低一点
    • 发布于 2019-04-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 标准库运行效率高,但是在各个STM32系列之间兼容性不好,HAL效率相对较低,但是在各个系列之间兼容性好,便于使用STM32CubeMX进行使用和管理。对于高效率要求的场合,可以使用HAL配合LL库实现。标准库官方已经不再维护和更新,现在官方主推HAL库,所以如果不是较早的工程需要维护,新工程建议使用HAL库开发。
    • 发布于18小时前
    • 举报
    • 评论 0
    • 1
    • 0

  • HAL库的封装层次更高,对底层的包装完整(更屏蔽底层信息)。

    因为HAL更厚重,所以效率稍微降低,但更方便调用,开发难度更小。

    • 发布于19小时前
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
    相对于HAL库,标准外设库仍然接近于寄存器操作,主要就是将一些基本的寄存器操作封装成了C函数。开发者需要关注所使用的外设是在哪个总线之上,具体寄存器的配置等底层信息。
    HAL是Hardware Abstraction layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP / IP和图形等
    • 发布于17小时前
    • 举报
    • 评论 0
    • 0
    • 0

  • 两套方法两套策略,不同时期开发出来的两套程序库

    可以先考虑一下联系是什么?

    这两套库之间就没有什么联系,区别很大很大,唯一相同点是  他们都是固件库

    • 发布于15小时前
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准外设库,是一个老的固件库

    hal 库是个新的外设库,针对 cobemx 各种组件 和 中间件 适配比较好。

    • 发布于14小时前
    • 举报
    • 评论 0
    • 0
    • 0

  • 本质上是一样的,对单片机寄存器的配置,

    不同的是架构不一样,HAL库分层设计,通用性比较高。

    • 发布于2019-04-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 区别,就是标准库只是把寄存器进行了定义并通过函数进行配置

    HAL库是分层的结构的,有统一的封装,方便移植

    • 发布于2019-04-28
    • 举报
    • 评论 0
    • 0
    • 0

  • ST目前主推的图形化配置工具CubeMX,生成的代码就是使用HAL库,使用CubeMX开发可以大大减轻开发者的工作量。

    标准库已经不再更新了

    • 发布于2019-04-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

标准外设库和HAL库的区别是什么?