标准库:是早期出来的库,个人觉得使用还是很方便,但是ST现在对新出的器件已经不怎么支持了。
HAL:这个库是近几年出来的,ST几乎将现在的精力都放在这个库上,配合CubeMX软件,HAL使用起来还是很方便,
但是这个库太占用FLASH,程序里面的无用代码比较多。
LL库:是对HAL的一个补充,精简HAL里面的结构,也可以使用CunbeMX软件。
开发的时候,一般是HAL+LL库的方式。但是即使使用这种方式,最后的HEX程序尺寸还是远大于标准库开发的方式。
hal通用型强,但是效率低,标准库适中,ll库是寄存器操作效率最高
首先说,标准外设库官方已经不再维护,将来的新器件也不提供了。
HAL库的封装做得非常好,几乎到了傻瓜的地步。但付出的代价是代码量大、内存占用高和运行效率低。
LL库是非常接近寄存器的库,它对寄存器的操作封装得比较好。并且大多采用__STATIC_INLINE函数,保证了运行效率。
个人感觉,HAL库适合入门、快速开发。LL库适合开发高效的产品开发。
标准库跟LL库是差不多的,比较贴近底层
HAL库是经过高度封装的,调用起来方便,但是执行效率较低