硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2726|回复: 23
收起左侧

[HAL] H7系列是不是只有HAL库,实际项目中有人在用吗

  [复制链接]

78

主题

278

回帖

512

积分

金牌会员

积分
512
发表于 2024-12-11 19:48:32 来自手机 | 显示全部楼层 |阅读模式
以前用F1系列的一直用Std标准库,H7应该没有标准库了吧,感觉用HAL库搞不好容易产生问题。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2024-12-11 21:39:27 | 显示全部楼层
有LL库我一定先用它,受不了HAL的臃肿
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-12 09:43:19 | 显示全部楼层
可以使用LL库,或者自己造轮子。

视频教程第3期:整体捋顺STM32H7的HAL库和LL库的框架,再配合寄存器造轮子找到更适合自己的玩法(2022-01-21)
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=110676
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2024-12-12 13:30:17 | 显示全部楼层
hal库配套的工具软件更多,方便些。喜欢标准库的方式,也可以使用LL库,差不多的。
回复

使用道具 举报

78

主题

278

回帖

512

积分

金牌会员

积分
512
 楼主| 发表于 2024-12-12 17:03:51 | 显示全部楼层
txf243 发表于 2024-12-11 21:39
有LL库我一定先用它,受不了HAL的臃肿

HAL库作为官方demo可以,快速演示产品可以,实际做产品,还是需要考虑可能产生的问题的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-13 00:30:26 | 显示全部楼层
logo 发表于 2024-12-12 17:03
HAL库作为官方demo可以,快速演示产品可以,实际做产品,还是需要考虑可能产生的问题的

实际上想多了,配置这块HAL要方便太多太多了,缺点是占用Flash稍多,但H7的Flash太大了,这些都可以忽略。

加速这块,唯一需要优化的就是中断,中断里面可以直接寄存器操作。
回复

使用道具 举报

78

主题

278

回帖

512

积分

金牌会员

积分
512
 楼主| 发表于 2024-12-13 00:37:56 | 显示全部楼层
eric2013 发表于 2024-12-13 00:30
实际上想多了,配置这块HAL要方便太多太多了,缺点是占用Flash稍多,但H7的Flash太大了,这些都可以忽略 ...

很讨厌HAL库里用systick定时器搞的HAL_Delay,工程中使用systick不停的中断有时候会打乱程序时许节奏,会引发不必要的问题。


另外,版主平时怎么保护身体的,看你也经常熬夜,我现在是熬不行了。之前伤了身体,现在不敢轻易熬夜了。搞电子的真不容易。
回复

使用道具 举报

102

主题

575

回帖

896

积分

金牌会员

积分
896
QQ
发表于 2024-12-13 08:00:52 | 显示全部楼层
我F103也都是用的HAL库。配置很方便。
回复

使用道具 举报

102

主题

575

回帖

896

积分

金牌会员

积分
896
QQ
发表于 2024-12-13 08:02:12 | 显示全部楼层
现在让我去看寄存器自己配置,我已经不习惯了。。。只用会cubemx。
回复

使用道具 举报

5

主题

229

回帖

249

积分

高级会员

积分
249
发表于 2024-12-13 09:21:44 | 显示全部楼层
当你说出对HAL库不喜欢用的时候,只能说明你老了
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2024-12-13 16:38:48 | 显示全部楼层
logo 发表于 2024-12-13 00:37
很讨厌HAL库里用systick定时器搞的HAL_Delay,工程中使用systick不停的中断有时候会打乱程序时许节奏,会 ...

会有什么问题呢,我在用STM32之前做过很多8位机项目,每个项目都统一使用一个定时器实现GetTickCount函数,以便实现延时、定间隔执行之类的功能,而且还是100us中断一次,也不会有什么影响,如果实在有需要软件高时序的应用,临时把定时定中断关了也不是不行。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-14 01:46:39 | 显示全部楼层
logo 发表于 2024-12-13 00:37
很讨厌HAL库里用systick定时器搞的HAL_Delay,工程中使用systick不停的中断有时候会打乱程序时许节奏,会 ...

滴答定时器这种1ms一次的中断,影响可以忽略不计
回复

使用道具 举报

78

主题

278

回帖

512

积分

金牌会员

积分
512
 楼主| 发表于 2024-12-14 12:32:47 | 显示全部楼层
eric2013 发表于 2024-12-14 01:46
滴答定时器这种1ms一次的中断,影响可以忽略不计

有的时序还是不能被随意打断的,比如写FLASH的时候要关闭所有中断,还有一些外围器件的通信时序,也不能随意打断
回复

使用道具 举报

78

主题

278

回帖

512

积分

金牌会员

积分
512
 楼主| 发表于 2024-12-14 12:33:38 | 显示全部楼层
supertankhzt 发表于 2024-12-13 16:38
会有什么问题呢,我在用STM32之前做过很多8位机项目,每个项目都统一使用一个定时器实现GetTickCount函数 ...

systick中断你是怎么关的,直接操作systick寄存器关闭吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-15 09:14:14 | 显示全部楼层
logo 发表于 2024-12-14 12:32
有的时序还是不能被随意打断的,比如写FLASH的时候要关闭所有中断,还有一些外围器件的通信时序,也不能 ...

内部Flash打断不了,Flash执行擦写期间,CPU无法访问Flash执行程序。
回复

使用道具 举报

2

主题

38

回帖

44

积分

新手上路

积分
44
发表于 2024-12-15 19:15:56 | 显示全部楼层
用HAL库开发的H743,做产品已经好几个了,都很稳定可靠
回复

使用道具 举报

5

主题

162

回帖

177

积分

初级会员

积分
177
发表于 2024-12-16 09:24:19 | 显示全部楼层
logo 发表于 2024-12-13 00:37
很讨厌HAL库里用systick定时器搞的HAL_Delay,工程中使用systick不停的中断有时候会打乱程序时许节奏,会 ...

谁没事用HAL_Delay......完全浪费CPU,还有cubemx在生成的时候就可以关掉了systick的中断
回复

使用道具 举报

25

主题

233

回帖

308

积分

高级会员

积分
308
QQ
发表于 2024-12-16 10:28:15 | 显示全部楼层
我觉得全面迈向hal库是历史必然,大量工程师在不同公司不同项目做同一个外设驱动,完全是人拉肩扛的思路。
虽然hal库现在还比较拉跨

评分

参与人数 1金币 +2 收起 理由
logo + 2

查看全部评分

回复

使用道具 举报

20

主题

57

回帖

117

积分

初级会员

积分
117
发表于 2024-12-17 13:54:21 | 显示全部楼层
大神多,动不动ST的库辣鸡,自己撸。大厂也没这么牛吧,小厂的打工仔水平更是一言难尽。
装逼怪当我没说。
回复

使用道具 举报

16

主题

76

回帖

124

积分

初级会员

积分
124
发表于 2024-12-19 08:55:04 | 显示全部楼层
2859932063 发表于 2024-12-16 09:24
谁没事用HAL_Delay......完全浪费CPU,还有cubemx在生成的时候就可以关掉了systick的中断

大佬,关于 “cubemx 配置工程时关闭 systick 中断” 有没有教程,我没找到如何关闭
回复

使用道具 举报

5

主题

162

回帖

177

积分

初级会员

积分
177
发表于 2024-12-19 10:23:20 | 显示全部楼层
刘心武 发表于 2024-12-19 08:55
大佬,关于 “cubemx 配置工程时关闭 systick 中断” 有没有教程,我没找到如何关闭

现在应该是不行了,可以通过寄存器关,或者直接让CNT=0。现在HAL库超时依赖就是systick或者其他定时器,关了的话部分外设的超时就可能有问题
回复

使用道具 举报

5

主题

162

回帖

177

积分

初级会员

积分
177
发表于 2024-12-19 10:25:39 | 显示全部楼层
刘心武 发表于 2024-12-19 08:55
大佬,关于 “cubemx 配置工程时关闭 systick 中断” 有没有教程,我没找到如何关闭

直接生成里面关掉中断
1734575101335(1).jpg
回复

使用道具 举报

12

主题

63

回帖

99

积分

初级会员

积分
99
发表于 2024-12-19 11:02:08 | 显示全部楼层
寄存器派系和Hal派系互相瞧对方不顺眼的

Hal主打 + 时序要求的寄存器
是为自己,为别人的最好方案

确保自己饭碗稳定,写得晦涩难懂可能是一种不错的选择
回复

使用道具 举报

25

主题

58

回帖

133

积分

初级会员

积分
133
发表于 2024-12-19 11:55:27 | 显示全部楼层
我使用stm32h743的体会:
尽可能使用HAL库。库函数也可以修改使用。
在中断处理中,还是不要用hal api,直接寄存器操作。效率更高。

多说一句,hal库,更适合有操作系统。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 03:38 , Processed in 0.057042 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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