搜索
bottom↓
回复: 40

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

[复制链接]

出75入8汤圆

发表于 2023-12-21 12:46:36 | 显示全部楼层 |阅读模式
如题:我用的是L431,结果网上一查,全是HAL库的,没有标准库的例程,就算正点的 也是。难道ST主推HAL库?

出0入0汤圆

发表于 2023-12-21 12:53:04 | 显示全部楼层
你说对了,后面新出的芯片不用标准库

出1310入193汤圆

发表于 2023-12-21 13:01:04 | 显示全部楼层
新的系列就是没有标准库的

出0入0汤圆

发表于 2023-12-21 13:10:31 | 显示全部楼层
早就主推HAL库了

出75入8汤圆

 楼主| 发表于 2023-12-21 14:02:15 | 显示全部楼层
jbpan852 发表于 2023-12-21 12:53
你说对了,后面新出的芯片不用标准库
(引用自2楼)

好的,谢谢。

出75入8汤圆

 楼主| 发表于 2023-12-21 14:02:36 | 显示全部楼层
lb0857 发表于 2023-12-21 13:01
新的系列就是没有标准库的
(引用自3楼)

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

出75入8汤圆

 楼主| 发表于 2023-12-21 14:03:12 | 显示全部楼层

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

出0入13汤圆

发表于 2023-12-21 14:05:48 | 显示全部楼层
我咋用的是LL库了,感觉简单够用...没啥效率的需求了。倒是低功耗的模板暂时还没有验证.....

出0入0汤圆

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

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

出0入75汤圆

发表于 2023-12-21 14:30:36 | 显示全部楼层
Flash足够大了,用CubeMX加HAL库简单好用不易出错,要求时效的部分直接操作寄存器或用LL库,不要求时效的HAL库,各种判断检查不用自己写,不要总抱着标准库不撒手了。

出140入158汤圆

发表于 2023-12-21 14:57:38 | 显示全部楼层
用HAL库初始化就好,中断入口自己处理,HAL的中断处理太啰嗦,效率也不好。其实就算不用HAL初始化,直接用寄存器也并不复杂,自己定义一些宏,做好注释,思路还更清晰,不容易出bug

出1310入193汤圆

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

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

出0入75汤圆

发表于 2023-12-21 16:09:00 | 显示全部楼层
lb0857 发表于 2023-12-21 15:36
hal库一旦排查bug时候,过程酸爽不得了
(引用自12楼)

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

出190入0汤圆

发表于 2023-12-21 16:14:07 | 显示全部楼层
ST 建议使用 libopencm3 库,不使用 LL 或者 HAL

出0入4汤圆

发表于 2023-12-21 16:17:24 | 显示全部楼层
看到HAL库就头疼

出75入8汤圆

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

谢谢,我看看这个LL库。

出75入8汤圆

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

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

出75入8汤圆

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

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

出75入8汤圆

 楼主| 发表于 2023-12-21 17:50:41 | 显示全部楼层
knight_sh 发表于 2023-12-21 16:14
ST 建议使用 libopencm3 库,不使用 LL 或者 HAL
(引用自14楼)

L4的,不是CM3吧。

出75入8汤圆

 楼主| 发表于 2023-12-21 17:51:21 | 显示全部楼层

L系列都是这样。

出75入8汤圆

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

LL和HAL交叉能用不。

出0入75汤圆

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


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

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

出0入75汤圆

发表于 2023-12-21 18:04:07 | 显示全部楼层
knight_sh 发表于 2023-12-21 16:14
ST 建议使用 libopencm3 库,不使用 LL 或者 HAL
(引用自14楼)

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

出75入8汤圆

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

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

出140入158汤圆

发表于 2023-12-21 18:58:01 | 显示全部楼层
2us一采样湿湿碎,定时器触发+DMA就好

出0入1209汤圆

发表于 2023-12-21 21:16:20 | 显示全部楼层
ZHAOBAO511 发表于 2023-12-21 14:02
谢谢,不是HAL库不好用吗?
(引用自6楼)

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

出0入300汤圆

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

出0入0汤圆

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

高,有深度

出75入8汤圆

 楼主| 发表于 2023-12-22 08:38:55 | 显示全部楼层
amigenius 发表于 2023-12-21 18:58
2us一采样湿湿碎,定时器触发+DMA就好
(引用自25楼)


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

出75入8汤圆

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

好的,谢谢。

出75入8汤圆

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

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

出0入211汤圆

发表于 2023-12-22 09:13:13 | 显示全部楼层
HAL库是拉你快速入门的,干活还是用LL库吧

出140入158汤圆

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

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

出190入0汤圆

发表于 2023-12-22 14:07:01 | 显示全部楼层

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

出190入0汤圆

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

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

出75入8汤圆

 楼主| 发表于 2023-12-22 16:33:05 | 显示全部楼层
hushaoxin 发表于 2023-12-22 09:13
HAL库是拉你快速入门的,干活还是用LL库吧
(引用自32楼)

好的,谢谢。

出75入8汤圆

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

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

出75入8汤圆

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

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

出0入0汤圆

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

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

出0入75汤圆

发表于 2023-12-22 22:59:46 来自手机 | 显示全部楼层
lonny_chen 发表于 2023-12-22 17:54
cubemx也是编译工具吗  我一般用来生成工程
(引用自39楼)

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

出0入300汤圆

发表于 2023-12-22 23:09:35 来自手机 | 显示全部楼层
各位老大,现在cubemx到哪个版本了啊,几年前用h743时钟树看着晕就没再坚持下去放弃了,回头用407了。但目前h743已经降价,又想回头试试了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 17:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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