• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问在编程STM32的时候使用HAL库还是标准库好呢?

奔跑的黑蚂蚁 2018-07-17 浏览量:2365
请问在编程STM32的时候使用HAL库还是标准库好呢?我知道官方推出了一个生成初始化代码的软件比较好用,但是生成的是HAL库的,HAL库看着比较复杂,学起来难不难呢?据说HAL库的执行效率不如标准库,还占用的空间大???
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 是的,没错,HAL库编译起来非常慢,效率也低下,占用空间大,但是HAL库的优点在于移植方便,阅读方便,理解起来并不复杂,适合新人入坑。

    标准库是ST早期的库,后期没有维护了,所以有些芯片直接没有标准库。

    当然,ST也意识到了HAL库的问题,现在推出了LL库,比HAL库更加简洁,更加接近底层。 

    • 发布于 2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:13
  • HAL库比较大,但是函数名做得比较标准,main函数里的代码可以直接赋值黏贴,比如F0的点灯程序,改一下引脚名就能用在F1或F4板子上。
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • hal库很适合入门者,利用STM32cube很容易上手,但是效率比标准库低,如果综合一下可以使用LL库,刚好在他们两者之间,既提高了开发速度,又有较好的效率。
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 我觉得标准库就已经封装的不错了,如果你使用HAL库,那么对底层的了解就更少了。原来一般情况都是51入门,51用的汇编比较多,对底层的原理还有一系诶了解,到了标准库底层机封装一遍了,基本上很简洁了,HAL库就是在标准库的基础上在封装一下,这样子你基本上接触不到底层了,对于学习来说,你用HAL库也没有问题,基本上的功能都要给你封装出来,但是你自己做项目开发的时候,就没有那么方便了,很多函数都不一定是你想要的,你想要的也不一定有,但是标准库的话,可以进行自己配置,要好一些,也没有汇编难。我觉得最好学标准库,然后多看看汇编底层的东西。你想想,其实那个HAL库你也可以做,只是你没时间,也没有做这么大库的经验,但是要你随便在标准库的基础上,封装几个基本功能出来,应该是没有问题的。还有就是HAL库的板子都是定死的,那个引脚接什么设备,显示屏这些,都是定了的,很不方便。
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为标准库不更新了,也就是说假如标准库即使有bug你也没啥办法,现在很多公司都逐渐要求使用hal库,编程符合misrac。hal库是一种趋势,不是说你不想用就不用了,这个没办法。另外就教程而言,目前hal.库视频比较少,但是只要推出,立马就有一批人录制hal库视频,但是确实hal库对于入门的人是喜欢的,对于要改动板子的人而言很麻烦。

    • 发布于2018-07-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 用hal库好,现在很多mcu厂家都是提供hal库的
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 学习的话用HAL库,开发的话还是用标准库比较好
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • HAL库执行效率确实慢一点,因为存在很多重的调用,这个库的目的主要是将底层全部封装起来,不过芯片运算速度快的话这点差异基本感觉不到

    标准库目前ST已经不去更新它了,推荐你使用LL库,这个库效率高一点

    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • ​现在的大趋势是STM32CubeMX内部的HAL库和LL库开始兴起了,直接用这个软件配置生成工程代码,标准库已经逐步被淘汰了。

    • 发布于2018-07-29
    • 举报
    • 评论 0
    • 0
    • 0

  • F1的教程里教的都是标准库

    所以相关的资料比较多

    但是现在st在主推HAL

    标准库在逐渐被淘汰

    建议是学习完标准库后,自学HAL

    • 发布于2018-07-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 用哪个库都是可以的

    关键是看你要效率还是要通用性。

    HAL的通用性是比较好的

    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问在编程STM32的时候使用HAL库还是标准库好呢?