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

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

[复制链接]
zero99 提问时间:2018-2-6 14:37 /
相信这两种库大家再熟悉不过了

那么到底它们到底各有什么优劣势呢?

有什么便捷的操作呢?你擅长使用哪种库?

分享下你的使用心得吧~~



附:STM32 HAL库、标准外设库、LL库(STM32 Embedded Software)







收藏 1 评论49 发布时间:2018-2-6 14:37

举报

49个回答
tanic 回答时间:2018-2-28 17:17:24
本帖最后由 tanic 于 2018-3-1 09:13 编辑

HAL库在于对外设的封装,程序员只需要关注应用,缩短项目开发时间。至于效率,只是在初始化阶段比较繁琐而已,运行阶段回调函数多嵌套了几层,这是可以通过策略解决的,比如,串口中断接收,每包数据的接收,先要设置接收buffer和期待接收的data_len,这些都是可以通过定制的协议提前知道的,若把data_len设置为1,可以模拟成标准库的处理方式,然而每次中断都会有额外的消耗,于是系统效率下降。
然而HAL库对程序员自身发展不利,会对CubeMax产生依赖,底层原理认识不足,一旦出现BUG往往不知道如何解决,更有甚者,项目需要换别家的IC那更是惨不忍睹。这样出来的程序员只能成为正真的码农。
正确的选择是两者都要会。或者有空的时候分析HAL底层是如何实现那些中间件的,不过CubeMax封装的中间件对C语言基础要求就比较高了,而且和中间件源代码一般都被修改了一些,最重要的是网络上针对HAL如何实现中间件的资料几乎没有,如果有标准库实现的经历,再用HAL库的才能看的明白。

评分

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

查看全部评分

feiante 回答时间:2018-3-1 10:24:39
       原来主要用的是标准库,也接触了一下HAL库,怎么说呢,本人水平比较差,总是在两种库中徘徊。为什么这么说,首先,原来用惯了标准库,同时标准库退出了那么长时间,网上各种外设的例程基本都全了,查找起来也比较方便。
       HAL库也尝试用了下,对于相对复杂的工作,比如以太网、USB、SD卡、文件系统等,用stm32cube简单配置一下就可以实现功能,确实很快,不需要移植和太多的修改,对于简单的功能,比如I2C,SPI、usart等,就是鼠标点点功能就好,代码自动生成,感觉还是比较爽。
      但是当出现问题需要调试时,HAL库就比较麻烦,封装太深,不像标准库那样容易找到问题点。
      结论就是:不追求新芯片的情况下,还是考虑用标准库。
zxm3165 回答时间:2019-8-16 00:01:57
我是前些年用标准库写过程序,现在又要写32的程序,接触了一下HAL,调试了一段时间,感觉HAL入手快,简单应用快速完成。
但是,写32的一般都有特定的需求,不都是简单应用,尤其对实时性、效率等有要求的应用,感觉HAL很垃圾,我调试一个通信程序,仅一个数据包的接收过程用Receive_IT加回调,不说数据写缓冲区过程与标准库方法没区别,仅仅附加的多次开关中断、各种条件判断等等。。本来不存在的好多东西都加进来了,不仅效率低,而且调试过程中莫名其妙的问题频频出现。
本来单片处理器就是强调效率的,它又不是商用处理器,用来运行庞大操作系统的,搞那么臃肿干嘛。
感觉ST不更新标准库,强推HAL,是一种商业运作模式,对开发者来讲,没什么益处。
个人观点,仅供参考。
Johnson Cao 回答时间:2018-2-27 08:34:23
还是寄存器好

点评

为啥啊,具体说说呐  发表于 2018-2-27 09:00
wudianjun2001 回答时间:2018-2-27 08:42:38
标准库现在官方都不提供支持了吧,都转到HAL来了,对新手来说两个都差不多

评分

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

查看全部评分

聪聪 回答时间:2018-2-27 08:46:25
感觉HAL的通用性更强,但是代码比较繁琐,在中断里面会消耗不必要的时间。我还是喜欢用标准库

评分

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

查看全部评分

jundao721 回答时间:2018-2-27 08:55:36
以前用标准库,现在似乎都转到HAL上来了,标准库感脚简单易懂,HAL稍复杂点可能稍灵活点,感觉用哪种库都行,解决问题就是好库

评分

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

查看全部评分

黑皮男 回答时间:2018-2-27 09:08:15
HAL库把很多需要在应用中实现的功能都封装了起来,相对标准库更加臃肿一些,一些对时间要求很紧迫的处理,感觉还是用标准库或寄存器来完成会更好一些。

评分

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

查看全部评分

anny 回答时间:2018-2-27 09:24:46
一直在用标准库,HAL库以后有机会慢慢用到项目上来,开始可能有些不习惯吧!

评分

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

查看全部评分

疯de_恒 回答时间:2018-2-27 09:27:46
还是喜欢标准库。
标准库优点就是速度快,可读性比较好,比较适合我们电工;缺点也很明显:后面ST都不更新支持标准库了,新器件连标准库都没有,STM32cubeMX也不支持。
HAL库比较绕,比较大,但是与标准库相反,ST现在正支持这个库。
LL库:还待完善中。期待。

评分

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

查看全部评分

嘉木香 回答时间:2018-2-27 09:43:58
新研、试验:HAL库;
开发、定型:STD库 OR 寄存器;

不过现在ST官方在前两年开始已经不对新出的MCU做STD库了,而且旧型号的系列STD库也不再维护更新;

HAL库是官方未来主推的,也和现在行业风气一样,注重快速实现应用功能并产品化占领市场。
电子产品更新迭代加快,商人也不会去注重产品是否经得起推敲,就算是满身的BUG只要功能够,
占领了市场,赚了钱就行,他们才不管你的稳定性、可靠性呢!

不过在一些特殊行业,像基础工业电子,军工等方向,稳定、可靠才是极致追求的目标,所以
STD库仍然适用,不过个人推荐使用HAL库附带的LL库,更加接近底层。

大家加油!

评分

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

查看全部评分

无薪税绵 回答时间:2018-2-27 09:48:48
我个人喜欢标准库。
因为入门时,用习惯了。
在项目上,有很多自己定义的函数都是引用标准库的。
如果要改为HAL库,可能会挺费劲的。

HAL库是使用STM32cubeMX后接触到的。
看大神们的经验分享,感觉HAL总是有些BUG,不太敢用。
但相信后期都会转向HAL库的。

LL库还没有用过,不好评价。

还有就是直接操作寄存器的方式,
这是执行速度上最快的,
但是必须对内核很了解才能用。
要不,就是直接复制大神们的成果

评分

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

查看全部评分

风之山谷 回答时间:2018-2-27 09:51:06
还是比较喜欢用标准库,用了很久了,个人使用比较熟悉,HAL库思路不一样,上手还是需要一定时间。
标准库:官方已经不再支持了,优点是速度很快,里面基本都是寄存器操作,思路比较简单,缺点是移植比较难。
HAL库:内容比较抽象,上手不太容易,运行速度比标准库还慢一点,但是可移植性很好,封装程度很高

评分

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

查看全部评分

feixiang20 回答时间:2018-2-27 10:04:21
hal库呢属于以后的大势所趋,像是用各种宏包裹起来的语法糖,适合新手快速上手,但是例程小。HAL库对外设操作进行了细致的封装封装,几乎所有外设操作都可以用HAL库中函数实现,让用户不用很了解甚至完全不去学习外设细节就可以编程操作。对于熟悉c语言,但第一次接触stm32甚至单片机的人来说,使用起来非常方便容易。
标准库呢大家都在使用,要看自己的掌握度,速度快,简单易懂,可读性强,资料和例程多。

评分

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

查看全部评分

Johnson Cao 回答时间:2018-2-27 10:18:24

一般芯片,我都会自己建一个ARCH层,封装我常用并习惯的接口,这位方便移植.其他芯片一般都直接用寄存器.STM32的开始是标准库实现,后期就渐渐的都更新成寄存器.这样可以直接对应手册排错.
大陶 回答时间:2018-2-27 10:38:58
一直用的是标准库,感觉很好用,里面的函数说明也比较丰富,也比较熟悉了,而且函数或者寄存器封装的也很好,移植的话也不是很难。
HAL库从来没有用过。

评分

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

查看全部评分

Angel_YY_ST 回答时间:2018-2-27 10:51:24
提示: 作者被禁止或删除 内容自动屏蔽
1234下一页

所属标签

相似问题

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