打印
[其他ST产品]

【STM32G4评测+02 CubeMX+LL库实现点灯】

[复制链接]
3194|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 caizhiwei 于 2021-3-19 23:21 编辑

       最近在库上面选择了很久,尝试了几个历程,发现HAL库繁琐,效率低下,比如,一个简单地 中断搞的很复杂。再说说CubeMX吧,也不是什么省油的灯,仅仅只能生成初始化代码而已,生成之后然后如何操作,也没有历程,还不如之前的STD库,每个外设都有2~3个功能OK的历程,移植修改也是很爽的。
不像CubeMX,配置去配置来,最后main.c还被覆盖了,哎。
       LL库(Low Layer)是 ST 最近新增的库,与 HAL 库捆绑发布,文档也是和 HAL 库文档在一起的,比如:在STM32F3x 的 HAL 库说明文档中,ST 新增了LL库这一章节,但是在 F2x 的HAL文档中就没有。
  LL 库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。其支持所有外设。使用方法:
1.独立使用,该库完全独立实现,可以完全抛开 HAL 库,只用LL库编程完成。在使用STM32CubeMX生成项目时,直接选LL库即可。如果使用了复杂的外设,例如 USB,则会调用 HAL 库
2.混合使用,和 HAL 库结合使用。
目前,CubeMX 在生成项目时,可以选择采用 LL 库。
  LL 库文件的命名方式和 HAL 库基本相同。个人感觉,LL 库就是原来的标准外设库移植到 Cube下的新的实现,但是其实现方法更加高效、简洁。使用 LL 库编程和使用标准外设库的方式基本一样,但是确会得到比标准外设库更高的效率。


    最终,我选择用LL库,让我又回到了STD库但感觉,编译很快,生成的代码尺寸很小!
我们可以先看看对比:

可见,相较于HAL库而言,LL库的效率是有极大提升的。这一点,在使用LL库编译代码时,就可以明显感觉到速度的提升。


LL库的使用方法

与HAL库相同,LL库同样支持CUBEMX生成代码,非常方便。并且,在cubemx工程中,不同外设是可以混合使用HAL和LL库的,两者完全兼容,所以适配上是不存在问题的。




这就是demo代码,LL库如此简单。

打包整理整个工程,见附件。
MDK_STM32G4_LED.rar (36 KB)



972946050c57f6d584.png (544.72 KB )

972946050c57f6d584.png

829796050c112cf7c1.png (352.2 KB )

829796050c112cf7c1.png

使用特权

评论回复
沙发
caizhiwei|  楼主 | 2021-3-20 10:50 | 只看该作者
尝试了几个历程,发现HAL库繁琐,效率低下,比如,一个简单地 中断搞的很复杂。再说说CubeMX吧,也不是什么省油的灯,仅仅只能生成初始化代码而已,生成之后然后如何操作,也没有历程,还不如之前的STD库,每个外设都有2~3个功能OK的历程,移植修改也是很爽的。
没人反驳吗?

使用特权

评论回复
板凳
风云ljh| | 2021-9-23 20:28 | 只看该作者
楼上说的跟对,st这帮人不知道咋想的,你们吧LL库弄全了不行吗,万恶

使用特权

评论回复
地板
wode2008| | 2021-9-24 14:11 | 只看该作者
工程建立麻烦了一点,后续开发就好了。做一个模板保存好。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

846

帖子

11

粉丝