STM32中HAL库与标准库的区别

这是扒的某网站上大佬们的见解。
1.HAL库就是封装的比较猛,移植性比较强,标准库就是将寄存器封装好,移植性没有HAL好。
2.HAL库可以用ST的软件CUBE生成初始化工程。3.HAL库最方便的就是可以用CUBEMX自动生成代码,动态的调用资源,不会出现地城配置上的冲突。
4.其实就是两种库的区别,Hal库更加全面一点,目前STM32官方也在主推Hal库,目前STMcubemx软件可以直接生成HAL库代码,非常方便编程,易移植。
5.HAL库是ST近年来推出的新库,可以直接在CubeMX下生成例程,并且各个不同型号的STM32之间的函数差异也减少了。
6.HAL库是现在ST主推的库,标准库现在已经不更新了。HAL库做了更深的封装,可以很方便的移植在F0/F1/F3/F4/F7的各个系列的芯片上。
7.hal库通用型强,但是效率稍微低一点,标准库效率高。
8.本质上是一样的,就是配置寄存器,只是HAL库将应用层与驱动层分的比较明确。
9.HAL库设计进一步降低了API对硬件的依赖性,它借鉴了OS中驱动程序的思路,使得API的通用性更强。 能使用ST的CubeMX图形化界面来生成软件框架,它和CubeMX生成的软件代码完全兼容。减少了程序员的负担,同时代码也更规范。 至于与原库函数之间的使用差异, 关键还是要掌握内核及外设的工作原理,如果熟悉了硬件的工作原理,这些库函数还是很好用的。
10.HAL库似乎是为初学者而制定,但这也许是STM32的未来所在。
11.HAL和STD库最大的区别是移植性上的区别,HAL相当于在标准库上在加以封装了。增强了移植性,STD库是在寄存器的基础上封装了一次。12.hal库封装的更想arduino,移植性强,相对效率就低一些,在时间就是金钱的现在,hal库无疑是很好的选择。
13.HAL库和标准库都是对寄存器操作的封装,但是这些库的函数不同在HAL库每个.c文件的开头会介绍这个库里面包含哪些函数,这些函数的用途,可以留意一下。
14.标准库是STM32最早推出的库,应用非常广泛,但是比较新的F7和H7等系列已经不支持了。
HAL库是官方主推的库,目前支持所有系列,相对效率没有标准库高,但是各个系列之间的兼容性很好,而且能够配合STM32CubeMX进行使用。由于官方现在不在更新和支持标准库了,所有精力都放在了HAL库和LL库上了,所以建议今后学习和应用还是以HAL库和LL库为主要对象。
15.hal库和标准库的最大区别就是减少了不同系列器件之间的库函数层差异,并且可以直接用cubemx生成。
16.HAL移植性比较强,可以通过cubemx生成代码,不过效率比较低标准库更像寄存器的操作,感觉更符合对寄存器使用的理解。
17.HAL库移植性比较好,操作比较简单。标准库移植性没那么方便,操作比较复杂,直接对寄存器的操作。
18.HAL库的封装比较多,大部分都是面向对象的设计,移植比较简单。
19.HAL的优点就是用API的设计,十分方便移植,而且操作也简单。
20.HAL的移植性是最好的,但是标准库不太方便移植,所以ST出了一个HAL库。

你可能感兴趣的:(笔记)