[技术讨论]STM32三种库函数的分析和比较


STM32库函数可以分为标准库函数、HAL库函数、LL库函数。你问我为什么不说寄存器开发,以为太过于底层,非一般高手驾驭不了,我只是个小菜**,所以对于寄存器开发不敢妄自议论。

1、标准库函数
标准库函数是C语言的标准库函数,包括stdio.h、stdlib.h、string.h等。标准库函数具有可移植性,适用于所有的C语言编译器,并且具有较好的兼容性。但是,标准库函数的执行效率较低,适用于一些不要求高性能的应用场景。
优点:
(1)具有可移植性:标准库函数适用于所有的C语言编译器,可以在不同的开发环境中使用。
(2)具有较好的兼容性:标准库函数在不同的平台上具有较好的兼容性,可以方便地移植和调试。
(3)易于学习和使用:标准库函数的调用方式和C语言的函数调用方式相似,容易学习和使用。
缺点:
(1)执行效率较低:标准库函数的执行效率较低,适用于一些不要求高性能的应用场景。
(2)功能较为简单:标准库函数提供的功能较为简单,不能满足一些高级别的需求。
(3)不支持硬件抽象层:标准库函数不能直接操作硬件,需要通过底层驱动实现硬件抽象层。
2、LL库函数
LL库函数是由ST公司提供的底层库函数,与HAL库函数相比,LL库函数更加接近硬件,提供了更高的执行效率。LL库函数的调用方式与寄存器的设置方式类似,适用于对硬件直接控制的应用场景,如设备驱动程序等。但是,LL库函数的使用较为复杂,需要对硬件的控制方式有一定的了解。
优点:
(1)执行效率高:LL库函数与硬件的交互更加直接,执行效率更高,适用于对性能要求较高的应用场景。
(2)更接近硬件:LL库函数更接近硬件,提供了更高的灵活性和可定制性,适用于一些需要对硬件直接控制的应用场景,如设备驱动程序等。
(3)支持硬件抽象层:LL库函数提供了硬件抽象层,可以直接操作硬件,而不需要底层驱动。
缺点:
(1)使用复杂:LL库函数的使用比较复杂,需要对硬件的控制方式有一定的了解,不适合初学者。
(2)不具备移植性:LL库函数的可移植性较差,不同型号的STM32芯片可能会有不同的LL库函数版本,需要根据芯片型号进行选择。
(3)不支持高级别的功能:LL库函数不支持高级别的功能,如中断处理、DMA传输等,需要通过其他方式实现。
3、HAL库函数
HAL库函数是由ST公司提供的硬件抽象层库函数,相比于LL库函数,HAL库函数更加易于使用,提供了一系列高级别的API函数。HAL库函数的使用方式类似于调用标准库函数,适用于对硬件控制要求较高,但是对性能要求不高的应用场景。HAL库函数也提供了一些高级别的功能,如中断处理、DMA传输等。
总之,STM32的标准库函数、LL库函数和HAL库函数各有特点,具体使用应根据实际应用场景进行选择。在性能要求较高的应用场景中,可以使用LL库函数或者直接操作寄存器;在对控制要求不高,但是需要快速开发的应用场景中,可以使用HAL库函数;在需要可移植性的应用场景中,可以使用标准库函数。
优点:
(1)易于学习和使用:HAL库函数的调用方式类似于调用标准库函数,易于学习和使用。
(2)支持硬件抽象层:HAL库函数提供了硬件抽象层,可以直接操作硬件,而不需要底层驱动。
(3)提供了高级别的API函数:HAL库函数提供了一系列高级别的API函数,包括中断处理、DMA传输等功能,方便用户快速开发。
(4)具有可移植性:HAL库函数的可移植性较好,可以在不同的开发环境中使用。
缺点:
(1)执行效率较低:HAL库函数的执行效率较低,适用于对性能要求不高的应用场景。
(2)功能较为简单:HAL库函数的功能较为简单,不能满足一些高级别的需求。
(3)占用空间较大:HAL库函数占用的空间较大,适用于资源充足的应用场景。
---------------------
作者:王小琪
链接:https://bbs.21ic.com/icview-3293492-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值