其实就是两种库的区别,Hal库更加全面一点,目前STM32官方也在主推Hal库,目前STMcubemx软件可以直接生成HAL库代码,非常方便编程,易移植。
HAL库是现在ST主推的库,标准库现在已经不更新了。
HAL库做了更深的封装,可以很方便的移植在F0/F1/F3/F4/F7的各个系列的芯片上
HAL库和标准库都是对寄存器操作的封装,但是这些库的函数不同
在HAL库每个.c文件的开头会介绍这个库里面包含哪些函数,这些函数的用途,可以留意一下
标准库是STM32最早推出的库,应用非常广泛,但是比较新的F7和H7等系列已经不支持了。
HAL库是官方主推的库,目前支持所有系列,相对效率没有标准库高,但是各个系列之间的兼容性很好,而且能够配合STM32CubeMX进行使用。
由于官方现在不在更新和支持标准库了,所有精力都放在了HAL库和LL库上了,所以建议今后学习和应用还是以HAL库和LL库为主要对象。
HAL移植性比较强,可以通过cubemx生成代码,不过效率比较低
标准库更像寄存器的操作,感觉更符合对寄存器使用的理解
HAL库移植性比较好,操作比较简单
标准库移植性没那么方便,操作比较复杂,直接对寄存器的操作