ZHAOBAO511 发表于 2023-12-21 12:46:36

请教朋友们,STM32L系列网上例程都是HAL库的?

如题:我用的是L431,结果网上一查,全是HAL库的,没有标准库的例程,就算正点的 也是。难道ST主推HAL库?

jbpan852 发表于 2023-12-21 12:53:04

你说对了,后面新出的芯片不用标准库

lb0857 发表于 2023-12-21 13:01:04

新的系列就是没有标准库的

modbus 发表于 2023-12-21 13:10:31

早就主推HAL库了

ZHAOBAO511 发表于 2023-12-21 14:02:15

jbpan852 发表于 2023-12-21 12:53
你说对了,后面新出的芯片不用标准库
(引用自2楼)

好的,谢谢。

ZHAOBAO511 发表于 2023-12-21 14:02:36

lb0857 发表于 2023-12-21 13:01
新的系列就是没有标准库的
(引用自3楼)

谢谢,不是HAL库不好用吗?

ZHAOBAO511 发表于 2023-12-21 14:03:12

modbus 发表于 2023-12-21 13:10
早就主推HAL库了
(引用自4楼)

好的,谢谢,HAL库没有标准库好用吧。

liao-ljj 发表于 2023-12-21 14:05:48

我咋用的是LL库了,感觉简单够用...没啥效率的需求了。倒是低功耗的模板暂时还没有验证.....

jbpan852 发表于 2023-12-21 14:26:51

liao-ljj 发表于 2023-12-21 14:05
我咋用的是LL库了,感觉简单够用...没啥效率的需求了。倒是低功耗的模板暂时还没有验证..... ...
(引用自8楼)

使用LL库也不错,接近标准库,但是很多判断机制需要自己处理

Doding 发表于 2023-12-21 14:30:36

Flash足够大了,用CubeMX加HAL库简单好用不易出错,要求时效的部分直接操作寄存器或用LL库,不要求时效的HAL库,各种判断检查不用自己写,不要总抱着标准库不撒手了。

amigenius 发表于 2023-12-21 14:57:38

用HAL库初始化就好,中断入口自己处理,HAL的中断处理太啰嗦,效率也不好。其实就算不用HAL初始化,直接用寄存器也并不复杂,自己定义一些宏,做好注释,思路还更清晰,不容易出bug

lb0857 发表于 2023-12-21 15:36:09

Doding 发表于 2023-12-21 14:30
Flash足够大了,用CubeMX加HAL库简单好用不易出错,要求时效的部分直接操作寄存器或用LL库,不要求时效的HA ...
(引用自10楼)

hal库一旦排查bug时候,过程酸爽不得了

Doding 发表于 2023-12-21 16:09:00

lb0857 发表于 2023-12-21 15:36
hal库一旦排查bug时候,过程酸爽不得了
(引用自12楼)

HAL库异常回调还是很全的,一般的问题不难找,如果怀疑哪部分有问题,直接操作寄存器对比一下就容易找到了。
只要不是HAL库程序里的各种检查和等待会导致CPU速度不够,HAL基本能满足大多数需要,HAL库除了大,占Flash和内存多之外,没有太多缺点,要占用小的还有LL库,各种库都是减少劳动量的工具,够用就行。

knight_sh 发表于 2023-12-21 16:14:07

ST 建议使用 libopencm3 库,不使用 LL 或者 HAL

suebillt 发表于 2023-12-21 16:17:24

看到HAL库就头疼{:sweat:}

ZHAOBAO511 发表于 2023-12-21 17:47:26

liao-ljj 发表于 2023-12-21 14:05
我咋用的是LL库了,感觉简单够用...没啥效率的需求了。倒是低功耗的模板暂时还没有验证..... ...
(引用自8楼)

谢谢,我看看这个LL库。

ZHAOBAO511 发表于 2023-12-21 17:48:33

Doding 发表于 2023-12-21 14:30
Flash足够大了,用CubeMX加HAL库简单好用不易出错,要求时效的部分直接操作寄存器或用LL库,不要求时效的HA ...
(引用自10楼)

明白了,时间问题,我要求特别高,恐怕HAL库有点悬啊,我AD采集波形啊。

ZHAOBAO511 发表于 2023-12-21 17:50:05

amigenius 发表于 2023-12-21 14:57
用HAL库初始化就好,中断入口自己处理,HAL的中断处理太啰嗦,效率也不好。其实就算不用HAL初始化,直接用 ...
(引用自11楼)

HAL不知道AD速率影不影响,我2微秒采集一次AD,L431的。

ZHAOBAO511 发表于 2023-12-21 17:50:41

knight_sh 发表于 2023-12-21 16:14
ST 建议使用 libopencm3 库,不使用 LL 或者 HAL
(引用自14楼)

L4的,不是CM3吧。

ZHAOBAO511 发表于 2023-12-21 17:51:21

suebillt 发表于 2023-12-21 16:17
看到HAL库就头疼
(引用自15楼)

L系列都是这样。

ZHAOBAO511 发表于 2023-12-21 17:52:03

jbpan852 发表于 2023-12-21 14:26
使用LL库也不错,接近标准库,但是很多判断机制需要自己处理
(引用自9楼)

LL和HAL交叉能用不。{:lol:}

Doding 发表于 2023-12-21 18:00:19

ZHAOBAO511 发表于 2023-12-21 17:48
明白了,时间问题,我要求特别高,恐怕HAL库有点悬啊,我AD采集波形啊。
(引用自17楼)

有多复杂的算法,能让软件触发忙不过来?如果有固定的触发条件,用硬件触发AD采集,CPU可以空闲出来干别的。

LL库基本上就是把操作寄存器封装了一下,HAL和LL可以随时混用。

Doding 发表于 2023-12-21 18:04:07

knight_sh 发表于 2023-12-21 16:14
ST 建议使用 libopencm3 库,不使用 LL 或者 HAL
(引用自14楼)

vscode + platfromIO + cubemx,写STM32程序各种爽,但无奈其他同事都是只用Keil,除了只自己维护的小工具,其他还得用keil。

ZHAOBAO511 发表于 2023-12-21 18:39:09

Doding 发表于 2023-12-21 18:00
有多复杂的算法,能让软件触发忙不过来?如果有固定的触发条件,用硬件触发AD采集,CPU可以空闲出来干别 ...
(引用自22楼)

谢谢,这样我就放心了,不行就混用,我边采集边判断,怕忙不过来。{:lol:}

amigenius 发表于 2023-12-21 18:58:01

2us一采样湿湿碎,定时器触发+DMA就好

kitten 发表于 2023-12-21 21:16:20

ZHAOBAO511 发表于 2023-12-21 14:02
谢谢,不是HAL库不好用吗?
(引用自6楼)

相反HLA库很好用,就是效率低了点,啰嗦了一点,但是考虑的非常全面。追求效率可以用LL库,趋势就是如此。20年前大家讨论的最多的是用汇编还是用C,10年前讨论的是用寄存器还是用库,5年前讨论的是用标准库还是HAL库,到今天已经很明显了。

ibmx311 发表于 2023-12-22 05:21:12

这样坚定的把底层分开势必造成需要实时,高效,简练的操作复杂化。计算机发展的精髓是高效低能耗,而不是简单易用。确实当年折腾汇编搞一个浮点的四则运算都折腾很久,用c写就一句话。但hal是一种封装,是为了赚钱为了把自己系列产品易于入门搞的东西不是软件的进步更不是什么趋势。

mdjfish 发表于 2023-12-22 08:28:02

ibmx311 发表于 2023-12-22 05:21
这样坚定的把底层分开势必造成需要实时,高效,简练的操作复杂化。计算机发展的精髓是高效低能耗,而不是简 ...
(引用自27楼)

高,有深度

ZHAOBAO511 发表于 2023-12-22 08:38:55

amigenius 发表于 2023-12-21 18:58
2us一采样湿湿碎,定时器触发+DMA就好
(引用自25楼)

每采一个值加个if(采样值>)PA0=1,也可以吗?

ZHAOBAO511 发表于 2023-12-22 08:39:55

kitten 发表于 2023-12-21 21:16
相反HLA库很好用,就是效率低了点,啰嗦了一点,但是考虑的非常全面。追求效率可以用LL库,趋势就是如此 ...
(引用自26楼)

好的,谢谢。

ZHAOBAO511 发表于 2023-12-22 08:40:56

ibmx311 发表于 2023-12-22 05:21
这样坚定的把底层分开势必造成需要实时,高效,简练的操作复杂化。计算机发展的精髓是高效低能耗,而不是简 ...
(引用自27楼)

不错,可能运算能力越来越强的,也越来越便宜。

hushaoxin 发表于 2023-12-22 09:13:13

HAL库是拉你快速入门的,干活还是用LL库吧

amigenius 发表于 2023-12-22 13:03:44

ZHAOBAO511 发表于 2023-12-22 08:38
每采一个值加个if(采样值>)PA0=1,也可以吗?
(引用自29楼)

这个需要看您要求的实时性去到什么程度,如果要求10uS,则可以DMA采集5个再中断一次来判断,如果要求2uS,则需要在ADC转换完成中断里处理,或者干脆用片内比较器,DAC输出给比较器

knight_sh 发表于 2023-12-22 14:07:01

ZHAOBAO511 发表于 2023-12-21 17:50
L4的,不是CM3吧。
(引用自19楼)

估计是历史包袱,不要被名字迷惑,它 st 支持是最全的

knight_sh 发表于 2023-12-22 14:10:26

Doding 发表于 2023-12-21 18:04
vscode + platfromIO + cubemx,写STM32程序各种爽,但无奈其他同事都是只用Keil,除了只自己维护的小工 ...
(引用自23楼)

我还是 Eclipse Embedded CDT 用习惯了,基于这些底层库,逐渐积累了自己的外设驱动框架{:smile:}

ZHAOBAO511 发表于 2023-12-22 16:33:05

hushaoxin 发表于 2023-12-22 09:13
HAL库是拉你快速入门的,干活还是用LL库吧
(引用自32楼)

好的,谢谢。

ZHAOBAO511 发表于 2023-12-22 16:34:16

amigenius 发表于 2023-12-22 13:03
这个需要看您要求的实时性去到什么程度,如果要求10uS,则可以DMA采集5个再中断一次来判断,如果要求2uS ...
(引用自33楼)

好的,别人已经做出来了。就是大循环中边采集边判断。

ZHAOBAO511 发表于 2023-12-22 16:35:05

knight_sh 发表于 2023-12-22 14:07
估计是历史包袱,不要被名字迷惑,它 st 支持是最全的
(引用自34楼)

好的,有时间试试,谢谢。

lonny_chen 发表于 2023-12-22 17:54:17

Doding 发表于 2023-12-21 18:04
vscode + platfromIO + cubemx,写STM32程序各种爽,但无奈其他同事都是只用Keil,除了只自己维护的小工 ...
(引用自23楼)

cubemx也是编译工具吗我一般用来生成工程

Doding 发表于 2023-12-22 22:59:46

lonny_chen 发表于 2023-12-22 17:54
cubemx也是编译工具吗我一般用来生成工程
(引用自39楼)

生成初始化代码,又快又不容易出错。

ibmx311 发表于 2023-12-22 23:09:35

各位老大,现在cubemx到哪个版本了啊,几年前用h743时钟树看着晕就没再坚持下去放弃了,回头用407了。但目前h743已经降价,又想回头试试了
页: [1]
查看完整版本: 请教朋友们,STM32L系列网上例程都是HAL库的?