OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7784|回复: 27

大家觉得HAL库怎么样?

[复制链接]

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-10-25 15:59:08 | 显示全部楼层 |阅读模式
都来说说吧,好用与不好用都来提点建议!

说说我自己吧,用了几天,感觉坑有点多。体现在:
各个文件之间关联耦合太多,添加某个文件后,还要再把与它相关的文件加进来才能编译通过。例如RCC就必须加入GPIO才能用,用TIM就得还要反DMA一同加进来。。。。。
文件里面的__weak函数到处是坑,有这个__weak函数编译不报错,但是可能该实现的代码却没有,程序不正常运行,找错误非常麻烦。做个TIM定时的程序,自建的工程,怎么改TIM3都是不工作,改了半天,后来把例子打开仔细对比才发现,在另外一个文件里,有初始化TIM3的时钟,而在我的工程里没把那个文件加进来,定时器初始化时用的是一个空的__weak函数,SHIT!
外围模块的初始化挺麻烦,为啥不把外围的时钟打开也放在初始化函数里, 这么分开整的理由是什么呢?
systick被HAL占用了,用操作系统时,这个地主还得特别注意!
太多的宏定义,学习研究程序的时候,被宏定义套来套去,看着比较累。
程序的架构得说是好的,不过这种方式对于C语言基础一般的人来说,学起来怕是困难较多吧。

欢迎大家各自发表下看法。
单选投票, 共有 42 人参与投票
14.29% (6)
19.05% (8)
66.67% (28)
您所在的用户组没有投票权限
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

79

主题

399

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1829
金钱
1829
注册时间
2015-9-21
在线时间
561 小时
发表于 2016-10-25 16:02:37 | 显示全部楼层
这就是我为什么不买7的原因,我就看着你们发愁,发牢骚。。还好我转树莓派了。
回复

使用道具 举报

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
发表于 2016-10-25 16:12:16 | 显示全部楼层
一直在用标准库。。。HAL方便但是感觉改了好多东西
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-10-25 16:23:44 | 显示全部楼层
没用过的也该有个选项啊,给条活路
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-10-25 16:26:45 | 显示全部楼层
龙之谷 发表于 2016-10-25 16:23
没用过的也该有个选项啊,给条活路

这个。。。。。没有想到。。。
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-10-25 16:27:47 | 显示全部楼层
看来,还是不喜欢的人多,一起督促一下ST,还是把这个库改了吧
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2016-10-25 16:43:56 | 显示全部楼层
以后只有HAL库   还是早早上手吧
学无止境
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-10-25 17:15:57 | 显示全部楼层
F1开发板没资料,没开始学呢。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-10-25 18:13:46 | 显示全部楼层
本帖最后由 zuozhongkai 于 2016-10-25 18:15 编辑

个人经历,HAL库很好,尤其是跨芯片!有个东西要用到STM32F030,以前没了解过,直接用的HAL库,F0上的外设驱动什么的全部用的F7的代码,直接粘贴复制。一个早上就把东西弄好了。刚开始从STD库转HAL库可能会有各种不适,但是用个2,3天对HAL库有个大体的了解以后就方便多了。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-10-25 18:49:43 | 显示全部楼层
没用过的路过
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-10-25 22:39:14 | 显示全部楼层

我也大多数情况下不用库的。
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-10-25 22:40:33 | 显示全部楼层
zuozhongkai 发表于 2016-10-25 18:13
个人经历,HAL库很好,尤其是跨芯片!有个东西要用到STM32F030,以前没了解过,直接用的HAL库,F0上的外设 ...

也正在用f030,正是用这个芯片做设计,下了hal库,才有感而发。
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2013-7-19
在线时间
129 小时
发表于 2016-10-25 22:56:05 | 显示全部楼层
用了一年多了,用惯了感觉标准库配置有点麻烦。HAL库和MX配合用,底层基本不怎么关心,专心搞正真的业务。
回复

使用道具 举报

28

主题

288

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1213
金钱
1213
注册时间
2011-4-9
在线时间
97 小时
发表于 2016-10-26 08:33:12 | 显示全部楼层
对于不能改变的事情,就去改变自己。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-10-26 09:57:47 | 显示全部楼层
山峰雪狼 发表于 2016-10-26 08:33
对于不能改变的事情,就去改变自己。

这句话赞同!
开往春天的手扶拖拉机
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-10-26 16:36:45 | 显示全部楼层
山峰雪狼 发表于 2016-10-26 08:33
对于不能改变的事情,就去改变自己。

还可以选择不用,其实我大多数的程序都是不用库的,用库和示例测试一下,最终的设计大多数不用。最新的hal库的.h文件做得还是挺好的。
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-7 12:26:16 | 显示全部楼层
这是趋势~慢慢适应吧
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
979
金钱
979
注册时间
2016-6-15
在线时间
474 小时
发表于 2016-11-7 12:36:17 | 显示全部楼层
本帖最后由 shuaigew88 于 2016-11-7 12:46 编辑

这也是ST的策略,让新手可以很快在STM32上开发产品,如果HAL发展的好的话最终的局面就是很多开发人员对它的依赖会非常强导致最终的结果就是离开了ST可能根本就不会用其他厂家的芯片进行开发。所以我认为ST的产品如果性价比一直能保持的很不错那么这个HAL学习很有必要,但是如果ST利用大家对它的依赖性赚利润的话可能对广大依赖性很强的开发人员来讲就不是什么好事情了。呵呵,不知道我理解的对不对,总之以后想转移到其他芯片厂家将会变得非常非常的困难。
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-11-8 22:42:51 | 显示全部楼层
shuaigew88 发表于 2016-11-7 12:36
这也是ST的策略,让新手可以很快在STM32上开发产品,如果HAL发展的好的话最终的局面就是很多开发人员对它的 ...

技术讨论,就不谈市场策略了。要说策略也和这个库扯不上关系,学会用hal库的难度不会低于去熟悉个新单片机。看似策略问题,但实际上我认为主要原因在于st便宜,看吧别的半导体厂出个不st便宜的片子,很快就会很多人去学去用。
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
979
金钱
979
注册时间
2016-6-15
在线时间
474 小时
发表于 2016-11-9 14:22:14 | 显示全部楼层
本帖最后由 shuaigew88 于 2016-11-9 14:31 编辑
jinggx 发表于 2016-11-8 22:42
技术讨论,就不谈市场策略了。要说策略也和这个库扯不上关系,学会用hal库的难度不会低于去熟悉个新单片 ...

的确你说的也没错,想学好HAL库的确不比去学一款单片机简单。应该说还是我表达的不清楚,HAL库出来的目的就是为了更好推出STM32CubeMX软件,这个软件可以说大大的降低了初学者的门槛,基本上现在出来的ST开发板都是以STM32CubeMX建立工程为主的教材,这样的结果必定是会造成很多人对ST的依赖!如果只单单评价HAL库其实没有什么不好,可以让开发人员不必太过于关系ST底层寄存器描述,包括一些通讯协议与驱动都写好了,开发人员可以专心将精力用于产品开发上大大降低开发周期。就像STC单片机其实是没有什么性价比可言的,但是还是会有那么多人去用它,其原因必定是它用起来简单且能满足一定的设计需要。所以还是希望ST以后出的所有芯片都能保持良好的性价比。
回复

使用道具 举报

9

主题

209

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1358
金钱
1358
注册时间
2015-12-19
在线时间
108 小时
发表于 2016-11-24 14:39:05 | 显示全部楼层
改动太大了   好多地方得重新学习   
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2016-11-24 15:31:26 | 显示全部楼层
好不好也只是个库而已,嵌入式的核心还是应用层,目前没用过,不过st一刀切的把之前标准库的相关例程删掉这点让我很不爽!
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-9-6
在线时间
5 小时
发表于 2016-12-12 13:52:06 | 显示全部楼层
微软被开发者诟病的原因就是因为它的API变来变去。本来软件分层的原因就是为了代码的重复利用,然而库改的太多反而不利于代码的复用。这就需要我们应用层要设计好接口。不要依赖底层代码
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2016-12-13 09:00:11 | 显示全部楼层
有选择性的去用吧   功能很强的库   但效率较低     
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
 楼主| 发表于 2016-12-13 14:29:29 | 显示全部楼层
现在基本上只当个例子来看了,写来写去,还是觉得不用库方便,最主要的是不用库代码清爽。
回复

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-3-14 21:17:50 | 显示全部楼层
使用一年的感觉,还是很好用的,尤其是针对移植代码而言,还有就是代码的风格规范了很多,当然缺点也是有的就是所谓效率不行,但是看了外国很多例子只要合理配置加正确使用对于工作应该是没有问题的,可以把经历放在实现功能上,这个是趋势,一直不上手后期还是得学,还是合理利用吧
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
发表于 2018-3-15 20:05:52 | 显示全部楼层
没用过,只用过库函数
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-8-30
在线时间
10 小时
发表于 2018-3-23 11:47:52 | 显示全部楼层
个人感觉单片机做一些小控制还可以,如果说要做高大上的东西更多的是考虑    <linux/Android控制板 +  单片机>联合使用的方案,所以单片机基本就是用在逻辑比较简单或者运行效率比较高的地方,HAL库用了一阵感觉很简单使用,降低了学习门槛但是弊端也很明显,运行效率差了很多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 01:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表