这个是两个不同的库了
一个是LL库,效率更高,直接操作寄存器的库
一个是HAL库,大量的封装函数,效率比较低,但是分层写的,移植性比较好。
这要看你的项目应用了,是不是要进行多平台的应用,对效率有没有要求了
LL库基本是寄存器级别的操作,相对于HAL执行效率很高,代码精简。详细的区别可以参考官方文档:
https://www.st.com/content/ccc/resource/sales_and_marketing/presentation/product_presentation/37/55/ff/bc/a8/71/4f/c5/stm32_embedded_software_offering.pdf/files/stm32_embedded_software_offering.pdf/jcr:content/translations/en.stm32_embedded_software_offering.pdf
ll 可以看成是 另一个 std库,差不多的
hal 库,封装了很多东西,有 rtos 的风格,貌似是给 rtos 这样的组件优化过的
自己用两种库,分别点个灯,追踪一下源码,就能看出来了
LL是比较底层的操作,效率比较高,但是比较复杂
HAL使用比较方便,但是效率没有LL高。
LL效率高,更贴近寄存器,是目前效率最高的库
HAL便于移植,但是效率较低