打印
[STM32F1]

STM32的HAL库,真烂!!!!

[复制链接]
楼主: pattywu
手机看帖
扫描二维码
随时随地手机跟帖
61
djyos| | 2017-6-9 15:15 | 只看该作者 回帖奖励 |倒序浏览
HAL库还真的有问题,你如果在关中断期间调用hal库的函数的话,很可能会死机。裸跑以及cubemx自带的freertos,都有问题。

只有djyos下跑,hal库才是安全的。

使用特权

评论回复
62
sonicll| | 2017-6-9 16:21 | 只看该作者
众口难调,ST还不如把每个芯片的标准库和HAL库都出了,让大家自己选择用哪个。现在STM32F7系列只有HAL,没有标准库,我们之前在F103上使用标准库的代码要移植过来还要花点时间

使用特权

评论回复
63
yechengyuan| | 2017-8-26 09:10 | 只看该作者
本帖最后由 yechengyuan 于 2017-8-26 09:17 编辑

做MCU的不只是简单易用,很多时候要实时,有些函数找不到寄存器,如 __HAL_LINKDMA ,有很多函数硬插入中断,如 HAL_TIM_OC_Start_DMA,又要自己去删除一些累赘的代码和修改寄存器,真正做起产品的时候,用起来并不快,消耗整体时间也不少,只能给初学者入门,做高端产品就不顺手,要做很多寄存器手工优化

使用特权

评论回复
64
野火_firege| | 2017-8-26 14:56 | 只看该作者
djyos 发表于 2017-6-9 15:15
HAL库还真的有问题,你如果在关中断期间调用hal库的函数的话,很可能会死机。裸跑以及cubemx自带的freertos ...

复议 +1                     

使用特权

评论回复
65
zlutian| | 2017-8-27 21:28 | 只看该作者
我还一直在用最初的标准库,跟不上时代了。

使用特权

评论回复
66
caoenq| | 2017-11-8 15:35 | 只看该作者
yechengyuan 发表于 2017-8-26 09:10
做MCU的不只是简单易用,很多时候要实时,有些函数找不到寄存器,如 __HAL_LINKDMA ,有很多函数硬插入中断,如  ...

高端的东西请不要用Cotex M系列了

使用特权

评论回复
67
kingkits| | 2017-11-8 16:50 | 只看该作者
这是给没有太多经验的人快速上手用的。你如果觉得自己厉害,完全可以另搞一套。

使用特权

评论回复
68
YDCMAN| | 2018-9-20 14:12 | 只看该作者
renxiaolin 发表于 2017-6-8 09:13
HAL库的重要问题在于忽略效率,尤其是中断,这样不能发挥裸机的特点,过分强调可移植性并不高明,在可移 ...

我也是这么想的,所以在考虑技术路线

使用特权

评论回复
69
renxiaolin| | 2018-9-20 14:57 | 只看该作者
YDCMAN 发表于 2018-9-20 14:12
我也是这么想的,所以在考虑技术路线

是的,ST对所有片子统一成HAL本身就是有问题的,对低端芯片,强调的是裸机的效率,就是针对性强,不需要可移植

使用特权

评论回复
70
最爱fate| | 2018-9-21 21:59 | 只看该作者
在库的道路上,ST还要走很远,现在最郁闷的是版本问题,不同版本的hal库不兼容,stm32CubeMX,安装在两台电脑上,稀里糊涂的用了不同版本的库,结果,cubeMX的工程都不能兼容,第一台电脑上的工程移动到第二台就没法打开了。

在库和代码生成上,距离理想还很遥远

使用特权

评论回复
71
戈卫东| | 2018-9-22 09:20 | 只看该作者
Cube用来做管脚规划还不错的。
其他就算了吧。

使用特权

评论回复
72
ringsp| | 2019-1-16 16:46 | 只看该作者
yechengyuan 发表于 2017-8-26 09:10
做MCU的不只是简单易用,很多时候要实时,有些函数找不到寄存器,如 __HAL_LINKDMA ,有很多函数硬插入中断,如  ...

st的hal达不到一个商业级的应用水平,对于新手做简单应用可以。对高手来说作为驱动编写的参考吧。

使用特权

评论回复
73
chunlei233| | 2020-5-7 10:55 | 只看该作者
本帖最后由 chunlei233 于 2020-5-7 11:02 编辑

HAL库就是烂库,就那编译时间就能让你抓狂.我研究过了,里面的函数来回调用.恶心的很!后来换成LL库,LL库和std库很接近.

使用特权

评论回复
74
香水城| | 2020-5-7 14:27 | 只看该作者
这个库侧重功能框架的实现和演示,非常适合新人上手的学习和功能验证。

在这个基础上,用户也可以基于HAL库进一步调整和优化

当然,你也可以直接选择使用LL库。

使用特权

评论回复
75
henglin| | 2020-5-24 22:41 | 只看该作者
还是老实的用STD的库吧3.5版本的
把硬件接口定义/驱动/事务处理  分块 做
以后换单片机了  只要把接口定义 和 驱动 修改一下,事务处理基本上不需要更改

使用特权

评论回复
76
caoenq| | 2020-5-26 08:59 | 只看该作者
香水城 发表于 2020-5-7 14:27
这个库侧重功能框架的实现和演示,非常适合新人上手的学习和功能验证。

在这个基础上,用户也可以基于HAL ...

城主也投诚了?HAL+cube组合可是ST强力主推的,难道HAL真的不堪重用么?
(还有就是城主这么说,不怕ST扣你工资么??)

使用特权

评论回复
77
香水城| | 2020-5-26 12:04 | 只看该作者
本帖最后由 香水城 于 2020-5-26 12:09 编辑
caoenq 发表于 2020-5-26 08:59
城主也投诚了?HAL+cube组合可是ST强力主推的,难道HAL真的不堪重用么?
(还有就是城主这么说,不怕ST扣 ...

呵呵!可能你有所误会。

STM32CubeMx 配置工具的确是非常非常强大、方便,要节省大量基于前期配置研究手册的时间。强力推荐使用!

基于CubeMx既可以配合HAL库生成工程,也可以配合LL库来生成工程,或者混合使用都可以。

HAL库谈不上不堪重用,完全可以。只是相比LL库生成的代码,其代码量稍微冗余了点、效率略低了点,这
主要是因为它要高度顾及STM32代码间的移植方便性

STM32CubeMx


使用特权

评论回复
78
whong0951| | 2020-5-26 16:10 | 只看该作者
问一下,觉得hal库不如std库的人,是不是也觉得win10不如win7好用,安卓没有塞班稳定啊……hal库确实不是万能的,在资源紧张的时候显得有些繁琐,肿胀,但在这种场合,你完全可以选择ll库,有比std库更高的效率和更少的消耗,hal库的抽象程度更高,简单上手,提升了开发效率,习惯了hal库,最近项目换成gd的芯片,换回gd的std库,感觉就像是从智能机回归到用直板手机。楼上的反对hal库的,最主要理由,还是不愿意付出学习成本去接受新的事物,顺便找了一堆理由攻击hal库。

使用特权

评论回复
79
caoenq| | 2020-5-27 10:12 | 只看该作者
香水城 发表于 2020-5-26 12:04
呵呵!可能你有所误会。

STM32CubeMx 配置工具的确是非常非常强大、方便,要节省大量基于前期配置研究手 ...

城主大人,我认为对于主频72MHZ的单片机来说,您说的“效率略低”完全体会不出来,最起码我是没感觉到,如果非要说有感觉,可能是100步笑99步的区别.

使用特权

评论回复
80
caoenq| | 2020-5-27 10:13 | 只看该作者
whong0951 发表于 2020-5-26 16:10
问一下,觉得hal库不如std库的人,是不是也觉得win10不如win7好用,安卓没有塞班稳定啊……hal库确实不是万 ...

有道理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则