打印
[STM32F1]

STM32的HAL库,真烂!!!!

[复制链接]
楼主: pattywu
手机看帖
扫描二维码
随时随地手机跟帖
21
lr_xgm| | 2017-6-7 11:23 | 只看该作者 回帖奖励 |倒序浏览
icecut 发表于 2017-6-7 11:20
hal的库不是万能的.以前哪个通用版本的库才是万能的.
不过改hal要小心点,重新更新会覆盖. ...

修改完就备份

使用特权

评论回复
22
z_no1| | 2017-6-7 11:42 | 只看该作者
在任务里用还好,在中断里就很蛋疼了,收个数据用得着几个US?

使用特权

评论回复
23
chen000000009| | 2017-6-7 12:00 | 只看该作者
又有人在喷HAL库了。。。。。。。

使用特权

评论回复
24
icecut| | 2017-6-7 12:10 | 只看该作者
z_no1 发表于 2017-6-7 11:42
在任务里用还好,在中断里就很蛋疼了,收个数据用得着几个US?

hal库就有中断处理.但是,st的中断写的也很不错噢....100条汇编近似1us.你自己的代码多少us?

使用特权

评论回复
25
cos12a| | 2017-6-7 12:28 | 只看该作者
要习惯于从一种模式变到另一种模式,以后还会变变变到另另另外一种模式。还会再变到下一个模式。
就看有没有机会经历了。

使用特权

评论回复
26
ddllxxrr| | 2017-6-7 12:32 | 只看该作者
严重同意楼主,希望ST公司不要再推什么新库,这样会使使用者疲于奔命

使用特权

评论回复
27
数码小叶| | 2017-6-7 13:50 | 只看该作者
ddllxxrr 发表于 2017-6-7 12:32
严重同意楼主,希望ST公司不要再推什么新库,这样会使使用者疲于奔命

然而事实是一直在更新

使用特权

评论回复
28
z_no1| | 2017-6-7 16:32 | 只看该作者
icecut 发表于 2017-6-7 12:10
hal库就有中断处理.但是,st的中断写的也很不错噢....100条汇编近似1us.你自己的代码多少us? ...

没仔细看过,是在逻辑分析仪的帮助下看的,估计是用太多栈了,压栈出栈太花时间了.

使用特权

评论回复
29
逍遥李| | 2017-6-7 16:43 | 只看该作者
像F7这些高端的芯片,现在只提供HAL库支持了,HAL库习惯了还是很好用的,资源消耗可能会多点

使用特权

评论回复
30
freeerror| | 2017-6-7 17:08 | 只看该作者
LL库还是比较好用的,兼容hal库,接近标准库,还不占内存

使用特权

评论回复
31
icecut| | 2017-6-7 18:07 | 只看该作者
ddllxxrr 发表于 2017-6-7 12:32
严重同意楼主,希望ST公司不要再推什么新库,这样会使使用者疲于奔命

为啥奔命?hal是用软件生成的.不要管怎么实现,只需要点点软件自动生成.接口都是统一的...统一的接口明白不?就是减少学习成本

使用特权

评论回复
32
Harvard| | 2017-6-7 21:37 | 只看该作者
哈哈 ... 尽快适应HAL吧 用好了 你会发现够你学一壶 比你写的高深多了.  实在不行LL库也是不错啊 .不过要吐槽的是... 笔记本要升级了.嘿嘿 不然编译那个慢啊

使用特权

评论回复
33
为我所望| | 2017-6-7 21:54 | 只看该作者
你可以用寄存器编写啊

使用特权

评论回复
34
Prry| | 2017-6-7 22:10 | 只看该作者
cpu的时间最不值钱,程序猿的时间才最宝贵!

使用特权

评论回复
35
error_dan| | 2017-6-7 22:35 | 只看该作者
刚开始接触HAL的时候,我也是这么想的,但是稍微看了一下,大部分的初始化参数代码基本上可以const或者是写死在函数里的,只在初始化的时候会释放到内存里,而且裸机API内部各种事件调度和错误处理是很完备的。
即使看起来代码很长,如果自己单步跟踪过就会发现,几乎全部在if else上跳掉了,很多甚至直接编译器优化掉了。
而且新的HAL采用了标准的回调机制,配置(组态)完硬件就可以直接写应用代码了,还要啥自行车?

使用特权

评论回复
36
pattywu|  楼主 | 2017-6-8 01:29 | 只看该作者
说到这里,想起了当年做POS机的事。
那是2002年,我们公司与卡西欧公司一起竞标湖北烟草全省访销、送货POS机。
说实话,卡西欧的硬件比我们公司好很多。
但我的软件比他们公司的人写得好。
他们的机器,通信速度只能到9600bps。虽然能提高到19200bps,但实际效果并没有提高多少,5%都不到。
而我的通信速度是115200bps,实现速度比他们公司的快15位。
下载数据时,我们的POS机,只花了20秒时间,他们公司的POS机,花了5分多钟。
最后,当然是我们公司的POS中标,那可是一个1200W的单子。

这也是为什么,我只用了2年时间,就从普通程序员,到开发部经理,产品部副总监、总监,副总工程师,总工程师的原因。
因为,我一直致力于优化代码,提高效率。
要知道,我们的第一代POS机是采用MCS-51,第二代POS机,采用的是ATmega128而已。

使用特权

评论回复
37
cooldog123pp| | 2017-6-8 08:45 | 只看该作者
可以自己写寄存器啊

使用特权

评论回复
38
feiante| | 2017-6-8 09:03 | 只看该作者
还是慢慢适应吧,估计这是趋势,很多厂家,不光是ST,都在往这个方向发展

使用特权

评论回复
39
renxiaolin| | 2017-6-8 09:13 | 只看该作者
icecut 发表于 2017-6-7 10:12
呵呵.看出做硬件的对软件的理解不行了...还停留在256字节ram的单片机水平.

栈的占用是很短时间的,函数用完 ...

HAL库的重要问题在于忽略效率,尤其是中断,这样不能发挥裸机的特点,过分强调可移植性并不高明,在可移植性需要重点考虑的时候至少我会用linux,而不是用M系列的单片机

使用特权

评论回复
40
ljy335877679| | 2017-6-8 09:28 | 只看该作者
你可以用标准外设库啊, ST有HAL库也有标准外设库,标准外设库下载地址比较隐蔽

使用特权

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

本版积分规则