hal库和标准库的区别?选哪个比较合适?

很多人觉得HAL库标准库很难用,为什么ST还是要强推?

一句话:企业只需要拿捏企业,不需要拿捏工程师!

最终给ST产生利润的是客户(企业),不是工程师,他才不会在乎工程师需要牺牲多少发量。

那怎么拿捏企业?

这个要从一个产品的研发成本说起。

ST推出HAL库最终目的就是缩短产品开发周期,降低企业的研发成本

产品研发周期就是产品从无到有的时间,时间越短,研发成本就越低。

因为工程师一个月至少也要1-2W工资吧,不过这个还不是最关键的,最关键的是研发周期决定你是否能占领市场的先机,是否能先跑马圈地。

作为一个从事了单片机开发10几年老工程师,我觉得STM32早期的固件库已经吊打同行了。

现在出了一个比固件库使用起来更简单的HAL库,这就很过分,心疼同行5秒。

如果你觉得HAL难用,大概率是第一次接触STM32这种开发模式,适应了以后你会发现比51单片机用起来更简单。

这种开发模式基本上是大势所趋,如果一个单片机芯片厂或代理商不提供外设例程,那请问你到底有什么核心竞争力,能说服企业去用你的单片机?

很多就是压低价格,降低品质,最后批量出货各种问题,双方遍地鸡毛。

下面聊下HAL库有哪些优势,为什么能缩短研发周期

推出HAL库的主要原因是为了简化STM32的开发过程。

在没有HAL库的情况下,开发人员需要直接与硬件交互,这需要深入了解芯片的寄存器、时钟和中断等底层细节。

这种开发方式需要较高的技术水平和花费更长的时间。

而有了HAL库,开发人员可以使用抽象层接口,将底层硬件控制从上层应用中隔离出来,使得开发人员更专注于应用程序本身的开发,简单来说就是做一个调库侠

同时,HAL库还提供了一些常用的驱动程序和功能库,比如I2C、SPI、USART等,这些都可以大大减少开发时间和代码量。

 

一、HAL库的优点

1.简化开发流程

开发人员不需要深入了解底层硬件细节,只需要调用HAL库提供的API函数即可实现底层硬件控制。

 

2.提高代码复用性

由于HAL库提供了标准化的接口,可以方便地在不同的STM32系列芯片之间共享代码。

 

3.增强可移植性

由于HAL库是与设备无关的,开发人员可以将代码移植到不同的芯片平台上,而不需要重新编写底层硬件控制代码。

提供常用驱动程序和功能库:HAL库提供了一些常用的驱动程序和功能库,比如I2C、SPI、USART等,这些都可以大大减少开发时间和代码量。

 

二、HAL库的缺点

1.增加代码复杂度

由于HAL库是一个大型的库,需要包含大量的代码,因此在使用时需要将库文件加入到工程中,这会增加代码的复杂度。

 

2.系统资源占用

由于HAL库是一个底层库,会占用一定的系统资源,因此在对系统资源要求较高的应用场景中,可能需要使用更为轻量级的库。

 

三、总结

虽然HAL库非常方便,但我还是喜欢用标准库,主要是用习惯了。

从资源占用、代码复杂度、代码执行效率、开发周期等维度综合评估的话,还是标准库最合适。

 

给TA买糖
共{{data.count}}人
人已赞赏
单片机百科

寄存器,存储器,RAM,ROM有什么区别?

2023-2-24 15:33:23

单片机百科

单片机选型看哪些参数?单片机选型原则

2023-2-27 17:06:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧