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

[复制链接]
 楼主| YanniChen 发表于 2018-5-18 14:18 | 显示全部楼层 |阅读模式
之前一直在用标准外设库,最近才听到有HAL库,还搭配cubeMx工具,他们的区别是什么?整两个库是替换关系?

评论

目前官方主推的是LL库,比HAL库更节省内存,执行效率也高不少。  发表于 2018-10-22 10:15
目前官方主推的是LL库,比HAL库更节省内存,执行效率也高不少。  发表于 2018-10-22 10:15
734774645 发表于 2018-5-18 15:34 | 显示全部楼层
HAL库起了个新名字:硬件抽象层。更加标准化了。所有的函数名和函数体进行了重新定义,重新编写。更加通用。基本上如果是共有的特征的单片机,你用HAL库的话,函数名是一样的,方便移植。
Harvard 发表于 2018-5-18 15:44 | 显示全部楼层
更加科学 更加庞大 又介于两者之间的 .HAL_LL库
yiyigirl2014 发表于 2018-5-18 16:42 | 显示全部楼层
官网介绍说,hal(hardware abstract layer)是一层硬件的抽象,看到这里,我非常激动,看来st终于意识到原来标准库的问题了,原来的标准库非常依赖于具体硬件细节,很难体现出使用库的优势,而且很难移植。同时我也非常好奇,st到底是如何把不同系列mcu的操作给封装起来的,是不是足够抽象,方便移植。

评论

搞了个软件,自动配置和生成代码...库是活的代码了  发表于 2018-10-14 12:08
quickman 发表于 2018-5-18 16:50 | 显示全部楼层
外设库只是固件库的一部分
jstgotodo 发表于 2018-5-18 16:50 | 显示全部楼层
有了cube,以且就慢慢的没有标准库了
iamaiqiyi 发表于 2018-5-18 16:50 | 显示全部楼层
到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。
dzfansman 发表于 2018-5-18 16:51 | 显示全部楼层
STD库和HAL库两者相互独立,互不兼容。
sanxingnote7 发表于 2018-5-18 16:51 | 显示全部楼层
标准外设库仍然接近于寄存器操作
backlugin 发表于 2018-5-18 16:51 | 显示全部楼层
ST为各系列提供的标准外设库稍微有些区别。
sdCAD 发表于 2018-5-18 16:52 | 显示全部楼层
LL库和HAL库两者相互独立,只不过LL库更底层。
fengm 发表于 2018-5-18 16:52 | 显示全部楼层
HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。
jkl21 发表于 2018-5-18 16:53 | 显示全部楼层
HAL库(STM32Cube)有点类似面向对象的库,里面封装了很多东西
maqianqu 发表于 2018-5-18 16:53 | 显示全部楼层
HAL库(STM32Cube)对于想理解深入 不适合用这个库。
dzfansman 发表于 2018-5-18 16:54 | 显示全部楼层
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。
quickman 发表于 2018-5-18 16:54 | 显示全部楼层
外设库、CMSIS、DSP库、三方驱动等组合起来就成固件库。
jstgotodo 发表于 2018-5-18 16:54 | 显示全部楼层
所以不管怎么样,尽量用cube
iamaiqiyi 发表于 2018-5-18 16:54 | 显示全部楼层
前两者都是常用的库,后面的LL库是ST最近才添加,随HAL源码包一起提供
sdCAD 发表于 2018-5-18 16:54 | 显示全部楼层
部分HAL库会调用LL库(例如:USB驱动)。同样,LL库也会调用HAL库
backlugin 发表于 2018-5-18 16:54 | 显示全部楼层
STM32的标准外设库涵盖以下3个抽象级别:

包含位,位域和寄存器在内的完整的寄存器地址映射
涵盖所有外围功能(具有公共API的驱动器)的例程和数据结构的集合。
一组包含所有可用外设的示例,其中包含最常用的开发工具的模板项目。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

62

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部