OpenEdv-开源电子网

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

hal库太难用了,让我吃尽苦头

[复制链接]

7

主题

12

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-2-5
在线时间
3 小时
发表于 2016-10-7 09:55:55 来自手机 | 显示全部楼层 |阅读模式
Hal库是太难用了啊,标准库就很好,放弃标准库用hak库就是找死啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-11-30 13:06:48 | 显示全部楼层
就当是个示例参考吧, 反正STD和HAL我都不用,单片机还是直接看寄存器来得快。省开发时间?不一定吧,简单小程序都用不到多少时间,复杂点程序,要是在库里有点小问题,查到让人抓狂,更费时间。
程序设计更多的是应用部分和算法,那几个外设的驱动有库与没库能费多少开发时间?
兼容性问题,芯片硬件都不一样,能有多好的兼容性?兼容性好的说法太牵强了吧?
回复 支持 2 反对 0

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

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

不觉得,个人感觉HAL库比STD库要好。尤其是代码兼容性,可能刚上手的时候不习惯,个人经历,刚上手的时候也是各种不习惯,花了两天用HAL写了几个例程后就了解了HAL库的机制。后面用起来就爽多了,尤其是到SD卡驱动,几十行代码就搞定了。更重要的是跨芯片的代码兼容性,做了个小东西要用到F030,用到了ADC、定时器、中断这些东西。直接把F7的代码拿过来用,完全兼容,一天就搞定了。
回复 支持 1 反对 0

使用道具 举报

1

主题

14

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1454
金钱
1454
注册时间
2015-8-18
在线时间
115 小时
发表于 2016-10-7 15:14:13 | 显示全部楼层
我也觉得HAL库比较好,使用CubeMX软件可以直接生成初始化代码,可以节省不少时间。
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-12-8
在线时间
21 小时
发表于 2016-10-7 16:05:50 | 显示全部楼层
看来我落伍了,要向hal挺进
回复 支持 反对

使用道具 举报

7

主题

12

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-2-5
在线时间
3 小时
 楼主| 发表于 2016-10-7 18:20:08 来自手机 | 显示全部楼层
用写简单的程序容易,你hal写spi口dma中断接收程序,看看是不是好写,我捣鼓了几天还没有出来
回复 支持 反对

使用道具 举报

7

主题

12

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-2-5
在线时间
3 小时
 楼主| 发表于 2016-10-7 18:22:44 来自手机 | 显示全部楼层
用hal写简单的应用程序容易写,你用hal写spi口dma中断接收程序,看看是不是好写,找不到例子,我捣鼓了几天还没有出来
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
501
金钱
501
注册时间
2014-12-8
在线时间
104 小时
发表于 2016-10-7 22:08:19 | 显示全部楼层
不习惯用HAL库,用着一点也不方便。关键是函数不知道去哪儿找去。
回复 支持 反对

使用道具 举报

5

主题

62

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2016-3-9
在线时间
75 小时
发表于 2016-10-8 16:13:14 | 显示全部楼层
HAL库确实很好用,但是感觉效率不高,太多的弯弯绕了
回复 支持 反对

使用道具 举报

0

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2015-12-7
在线时间
66 小时
发表于 2016-10-8 17:25:13 | 显示全部楼层
起码HAL库再也不用去查外设挂在哪个总线上了。
回复 支持 反对

使用道具 举报

14

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-4-19
在线时间
137 小时
发表于 2016-10-9 16:21:11 | 显示全部楼层
楼主说的就是,我f407用hal输出和fsmc用的好好的,包括ucosiii都移植好了,唯独输入有问题,现在都没有搞清楚输入是怎么回事不行,我写两个按键,输入却是一直按下的,包括触摸屏都有问题,超级蛋疼
回复 支持 反对

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-10-10 08:49:01 | 显示全部楼层
这个HAL库 F1系列可以用吗? 还没用过
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复 支持 反对

使用道具 举报

28

主题

288

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1213
金钱
1213
注册时间
2011-4-9
在线时间
97 小时
发表于 2016-10-10 08:55:50 | 显示全部楼层
习惯就好
回复 支持 反对

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1068
金钱
1068
注册时间
2012-6-18
在线时间
158 小时
发表于 2016-11-29 22:47:26 | 显示全部楼层
习惯了,再次推翻是很困难的。hal 库比std库好太多了。
回复 支持 反对

使用道具 举报

29

主题

311

帖子

0

精华

高级会员

Rank: 4

积分
747
金钱
747
注册时间
2016-5-21
在线时间
199 小时
发表于 2016-11-30 08:50:38 | 显示全部楼层
东西是好东西,就是用起来太复杂,说到兼容性也没好到哪去,F4跟F7的都不一样
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2015-10-26
在线时间
33 小时
发表于 2016-11-30 09:51:52 | 显示全部楼层
ysq7120 发表于 2016-10-10 08:49
这个HAL库 F1系列可以用吗? 还没用过

全系列支持HAL库了
回复 支持 反对

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2016-11-30 10:08:08 | 显示全部楼层
HAL库比标准库好用  开发我一直用这个 开发效率和可移植性要高于标准库  而且这是将来的趋势 st已经放弃标准库了 F7之后已经不支持标准库了
回复 支持 反对

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2016-11-30 10:09:36 | 显示全部楼层
确切的说F4之后就不支持标准库了
回复 支持 反对

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-11-30 13:09:46 | 显示全部楼层
库函数,除了像USB,ETH这些极其复杂的外设,拿ST的驱动用一下之外,其它的什么IO、时钟、TIM、SPI、ADC、UART等等什么的,库完全没什么用,就是拿来当例子看看。
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-8-8
在线时间
8 小时
发表于 2016-12-6 17:24:03 | 显示全部楼层
juky2008 发表于 2016-10-7 15:14
我也觉得HAL库比较好,使用CubeMX软件可以直接生成初始化代码,可以节省不少时间。

其实配置熟悉了,都一样,
回复 支持 反对

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-12-6 23:42:45 | 显示全部楼层
别的都好,就是中断处理程序太恶心了,一大堆不怎么用得上的东西,想改也很难读懂
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-4-12
在线时间
6 小时
发表于 2017-1-12 09:37:40 | 显示全部楼层
确实很难用,其他系列单片机上不知道,在F103系列上,我就得吐吐槽了。
同样,也是在中断处理上,有点管得太多了,最初的时候仅仅是发现CAN终端,串口接收中断等被莫名其妙的关闭,后来发现是它中断处理给关的,不知为何。还有AD采样DMA,居然强行进DMA中断,需手动关闭,而且要紧接着START关闭。。。
回复 支持 反对

使用道具 举报

23

主题

69

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-5
在线时间
50 小时
发表于 2017-1-12 10:45:07 | 显示全部楼层
我的中端端函数也进不去,用的UART7,后面加了一条语句还是不行,迷茫中。。。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-1-10
在线时间
3 小时
发表于 2017-1-13 09:14:37 | 显示全部楼层
习惯了std库
回复 支持 反对

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2017-1-13 10:06:29 | 显示全部楼层
F407+FreeRTOS+LWIP,也是用的CUBEMX生成的代码,HAL库里面的超时机制在有些应用中不适合,比如串口接收超时,会一直占用CPU,导致OS调度出问题,只有自己另外写中断,跟HAL结合起来用。思路是好的,但不是万金油,具体应用具体分析。
活到老,学到老。
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
发表于 2017-1-25 09:10:52 | 显示全部楼层
hal的中断到callback函数,还要两次函数调用,感觉很费内存.另外,hal库里面有些功能没有封装,用的时候还需要操作寄存器
回复 支持 反对

使用道具 举报

头像被屏蔽

8

主题

95

帖子

0

精华

禁止发言

积分
349
金钱
349
注册时间
2016-12-8
在线时间
88 小时
发表于 2017-1-25 10:34:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

7

主题

12

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2016-2-5
在线时间
3 小时
 楼主| 发表于 2017-5-21 22:09:04 来自手机 | 显示全部楼层
hal库的问题:一是效率慢,比标准库慢很多,二是需要学习,浪费了开发者的时间,我在用标准库做的时候,根本不需要学习,节省了很多时间
回复 支持 反对

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-5-22 09:40:09 来自手机 | 显示全部楼层
hal库dma使用时候直接调用该外设的dma中断就可以了。很简单啊
回复 支持 反对

使用道具 举报

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
发表于 2017-8-24 12:13:27 | 显示全部楼层
电子&mcu爱好者 发表于 2016-10-9 16:21
楼主说的就是,我f407用hal输出和fsmc用的好好的,包括ucosiii都移植好了,唯独输入有问题,现在都没有搞清 ...

我用hal驱动407的fsmc就一直有问题,能交流交流吗?
回复 支持 反对

使用道具 举报

26

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2016-10-23
在线时间
78 小时
发表于 2017-8-24 12:37:00 | 显示全部楼层
感觉hal库只适合用cubemx初始化,跑起来速度太慢了
回复 支持 反对

使用道具 举报

17

主题

341

帖子

0

精华

高级会员

Rank: 4

积分
909
金钱
909
注册时间
2017-6-18
在线时间
175 小时
发表于 2017-8-26 04:01:11 来自手机 | 显示全部楼层
kmmyk 发表于 2017-8-24 12:13
我用hal驱动407的fsmc就一直有问题,能交流交流吗?

只要跟系统,就绝对不会用HAL, 用寄存器是为了效率,跟手册一起配下去,快速。官方库则是为了标准。
回复 支持 反对

使用道具 举报

17

主题

52

帖子

1

精华

高级会员

Rank: 4

积分
555
金钱
555
注册时间
2015-6-11
在线时间
66 小时
发表于 2017-8-28 11:53:14 | 显示全部楼层
M4驱动4G模块,USB部分就是自己写的。没有用ST提供的,感觉太乱太大了。不过没有ST的做参考,估计一时半会也写不出来。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-3-7
在线时间
1 小时
发表于 2018-3-7 15:27:31 | 显示全部楼层
heey 发表于 2017-8-28 11:53
M4驱动4G模块,USB部分就是自己写的。没有用ST提供的,感觉太乱太大了。不过没有ST的做参考,估计一时半会 ...

有qq吗?方便加qq吗?495130251
回复 支持 反对

使用道具 举报

17

主题

52

帖子

1

精华

高级会员

Rank: 4

积分
555
金钱
555
注册时间
2015-6-11
在线时间
66 小时
发表于 2018-3-10 11:43:56 | 显示全部楼层
tonyfrankyao 发表于 2018-3-7 15:27
有qq吗?方便加qq吗?495130251

http://www.openedv.com/forum.php ... d=266675&extra=
代码发这个帖子了
回复 支持 反对

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2018-3-10 12:01:08 | 显示全部楼层
hal库要远比标准库好用   坚持下来你会爱上它的  
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-21 21:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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