风之山谷 发表于 2018-2-27 09:51:06

还是比较喜欢用标准库,用了很久了,个人使用比较熟悉,HAL库思路不一样,上手还是需要一定时间。
标准库:官方已经不再支持了,优点是速度很快,里面基本都是寄存器操作,思路比较简单,缺点是移植比较难。
HAL库:内容比较抽象,上手不太容易,运行速度比标准库还慢一点,但是可移植性很好,封装程度很高

feixiang20 发表于 2018-2-27 10:04:21

hal库呢属于以后的大势所趋,像是用各种宏包裹起来的语法糖,适合新手快速上手,但是例程小。HAL库对外设操作进行了细致的封装封装,几乎所有外设操作都可以用HAL库中函数实现,让用户不用很了解甚至完全不去学习外设细节就可以编程操作。对于熟悉c语言,但第一次接触stm32甚至单片机的人来说,使用起来非常方便容易。
标准库呢大家都在使用,要看自己的掌握度,速度快,简单易懂,可读性强,资料和例程多。

Johnson Cao 发表于 2018-2-27 10:18:24

Johnson Cao 发表于 2018-2-27 08:34
还是寄存器好

一般芯片,我都会自己建一个ARCH层,封装我常用并习惯的接口,这位方便移植.其他芯片一般都直接用寄存器.STM32的开始是标准库实现,后期就渐渐的都更新成寄存器.这样可以直接对应手册排错.

dataozi 发表于 2018-2-27 10:38:58

一直用的是标准库,感觉很好用,里面的函数说明也比较丰富,也比较熟悉了,而且函数或者寄存器封装的也很好,移植的话也不是很难。
HAL库从来没有用过。

Angel_YY 发表于 2018-2-27 10:51:24

标准库出的比较早,效率比较高,应用广泛,例子也多,学习难度不大,用户基数大,所以也就很稳定。但是也正因为推出的早,在STM32各个系列之间的兼容性方面做得不够好。
HAL库推出较晚,很多已经喜欢标准库开发的人员不愿意更换,所以目前应用广泛程度还不及标准库,但是STM32各个系列之间的兼容性要好很多,而且最重要的是支持STM32CubeMX图形化配置工具,这给初学者带来了很大的方便,所以如果之前没有学习过标准库,还是直接使用STM32CubeMX来应用HAL库,相信随着应用广泛程度的提高,HAL库会越来越稳定。
LL库可以看成HAL库的高效率版本吧,改善了HAL库的效率问题,支持的芯片也在逐渐完善。

wolfgang2015 发表于 2018-2-27 11:00:16

现在再看HAL库的时候发现,越来越多的HAL操作放弃直接操控寄存器,而选择操控LL的封装。
这会不会让本来效率不高的HAL在LL基础上更加效率低下。

将来也许会出现根据LL封装更高效的HAL2出现。

beill8888 发表于 2018-2-27 11:28:02

一直以来都在用标准库,现在准备转向HALL库。

xmstudio 发表于 2018-2-27 11:40:16

HAL库确实比较大,一套HAL库占100M的空间,不过HAL库毕竟可以用STM32CubeMX直接导入好,不需要在进行复杂的添加库操作,还是很方便的

wenyangzeng 发表于 2018-2-27 12:06:10

    HAL库在初始化配置外设会方便快捷些,尤其是配置系统时钟更会避免出错。但编译速度慢些。尤其是当对main.h进行修改会从头再编译一遍。
    标准库在初始化配置要复杂些,配置系统时钟⑩容易出错,但编译速度快。运行也稳定。只可惜L0、L4、F7、H7都不支持。

    LL库应该是方向,但目前例程较少。

jcx0324 发表于 2018-2-27 12:20:29

说实话,HAL库比较臃肿, 不太适合实际产品应用, 标准库比较简洁,适合对时间没有严格要求的产品
页: 1 [2] 3 4 5
查看完整版本: STM32 HAL和标准库,各有什么优劣势