你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 HAL和标准库,各有什么优劣势  

[复制链接]
zero99 提问时间:2018-2-6 14:37 /
阅读主题, 点击返回1楼
收藏 1 评论49 发布时间:2018-2-6 14:37
49个回答
哈佛祖安智 回答时间:2018-2-27 13:12:55
STM32Cube一统天下,官方的STM32库函数性能对比.pdf里面做过对比测试: 搜狗截图20180227131134.png

STM32库函数性能对比.pdf (240.74 KB, 下载次数: 38)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

zhjb1 回答时间:2018-2-27 15:27:10
无论那种库都是为了减轻开发人员的编程麻烦开发的基于C的函数库,好处是一经编好,适用性大增,稍稍改改或增加些函数就可以应用到其他芯片上。缺点是易读性较差,不想寄存器编程那样可以明白具体操控。感觉HAL库比标准库通用性更强一点。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

sfd123-302670 回答时间:2018-2-27 16:10:34
一直在用标准库,没用过HAL,没法比较!
衔胆栖冰 回答时间:2018-2-27 17:05:27
没出问题的时候是CubeMX+HAL好,出了问题就开始怀念标准库了!个人觉得熟练掌握标准库还是有必要的,毕竟其他友商的库跟标准库思路更像,不是每个公司都会给用ST的。目前用HAL的厂商相对要少。上面说了那么多都是废话,最后说一句就是:老夫写代码就是一把梭.....

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

maxtch 回答时间:2018-2-27 18:28:17
我个人还是喜欢直接捅寄存器。

1. 不管是标准库还是 HAL,ST 都没有做到有意义的抽象,代码臃肿占用闪存空间,而且干扰到编译器优化,但没有什么实际意义。在提供库这方面我喜欢 TI 的做法:把库预先编译好放在片内速度等同于 SRAM 的掩膜 ROM 里面,这样的话库不占用闪存空间,还可以反过来加速代码执行。
2. 我个人已经有一套结合了 Arduino 和 POSIX 的嵌入式开发体系了,有不少现成的代码可以用。这些代码大多来自 AVR,都是直接捅寄存器的。(AVR 芯片实在太小了,没有库可用,8 位单片机用库也没有大意义。)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

流水源 回答时间:2018-2-27 18:52:45
个人更倾向代码执行效率。
nyszx 回答时间:2018-2-27 20:27:10
我喜欢标准库+寄存器,相对于HAL库要直接一些,面对MCU我觉得就得简单暴力才能有效率。HAL库为了通用牺牲了很多。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

yubinwu_3004964 回答时间:2018-2-27 20:28:00
HAL库应该是为了便於F1和其他几个系列之间的程序互相移植,可以有较少的改动
本身ST的MCU,在引脚分布上F1、F4等等之间差异也很小

至於寄存库的库,效率是高的

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

超級稻草人 回答时间:2018-2-27 20:48:45
看个人习惯吧
toofree 回答时间:2018-2-28 00:55:32
熟悉标准库,不排斥HAL。毕竟新出的器件都没有标准库了,HAL是趋势。
LL库暂时不打算用,前几天验证一个坛友的问题,真是有BUG呀。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版