弱弱的问一下:STM32的HAL库相比于标准库有什么优势吗?

2019-12-14 12:24发布

最近在用STM32L151,发现资料都是HAL库的,各种不习惯啊!逼的我现在是直接用寄存器了~
我想问下各位有没有这种感觉:HAL库看起来更臃肿了,而且还要再重新熟悉一种库。ST为什么放弃标准库了呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
zhonghua_li
1楼-- · 2019-12-18 17:24
 精彩回答 2  元偷偷看……
diyeyuye
2楼-- · 2019-12-18 19:31
151是有标准库的啊,我在用。
barryxiao
3楼-- · 2019-12-18 22:33
很多人都在说效率问题,我想说HAL的效率完全不是问题,。
多数情况下,影响整个系统效率的主要都在20%的重复运行代码上,一般是控制或者通信方面反复调用的地方,其他80%的代码很可能只是某些设置或者初始化用一下。只要优化好这20%的关键代码就可以保证效率不会下降太多(我觉得下降<5%是可以接受的,毕竟HAL抽象程度高,使用方便)
做嵌入式的没有谁会只调用官方API吧?大家都是API和寄存器同时使用的,关键地方用寄存器操作取代API调用就行了。初始化、设置速度慢个百分之几一点没关系
barryxiao
4楼-- · 2019-12-19 04:29
另外就是中断。HAL的中断确实很复杂,但也没有看起来的那样效率低,入口参数都是用的外设抽象句柄,在句柄的基础上指向了外设基地址结构体,操作的时候也不会慢很多。
只是判断的flag确实太完整了,可能到用户callback的时候已经过了好多个机器周期,特别频繁的中断还是应该自己写中断服务。
另外就是多使用DMA进行数据处理,stm32系列的dma还是挺灵活的
zhongsandaoren
5楼-- · 2019-12-19 08:40
标准用习惯了,也没时间熟悉HAL了,过了学习的阶段了
leey
6楼-- · 2019-12-19 12:15
 精彩回答 2  元偷偷看……

一周热门 更多>