[STM32F1]

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

[复制链接]
40028|63
手机看帖
扫描二维码
随时随地手机跟帖
YanniChen|  楼主 | 2018-5-18 14:18 | 显示全部楼层 |阅读模式
之前一直在用标准外设库,最近才听到有HAL库,还搭配cubeMx工具,他们的区别是什么?整两个库是替换关系?
评论
通宵敲代码 2018-10-22 10:15 回复TA
目前官方主推的是LL库,比HAL库更节省内存,执行效率也高不少。 
通宵敲代码 2018-10-22 10:15 回复TA
目前官方主推的是LL库,比HAL库更节省内存,执行效率也高不少。 
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的操作给封装起来的,是不是足够抽象,方便移植。

使用特权

评论回复
评论
icecut 2018-10-14 12:08 回复TA
搞了个软件,自动配置和生成代码...库是活的代码了 
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

粉丝