STM32标准外设库SPL转换成Cube LL

置顶公众号,不错过每一条消息!

640?wx_fmt=jpeg

今天分享几点内容:

1.介绍ST推出的三种库;


2.直接操作寄存器及三种ST库的代码性能对比;


3.STM32CubeMX直接生成Cube LL库函数的方法


4.STM32标准外设库SPL转换成Cube LL的方法;

1介绍ST推出的三种库

1.标准外设库:Standard Peripheral Libraries,简写SPL.

2.Cube硬件抽象层库:STM32Cube Hardware Abstraction Layer,简写Cube HAL.

3.Cube底层库:STM32Cube Low-Layer,简写Cube LL.

开发STM32常见的除了直接读写(操作)寄存器之外,就是使用ST推出的库函数进行开发。

这三种库中最早推出的是标准外设库SPL,所以在推出STM32Cube HAL之前的大部分攻城狮都喜欢使用标准外设库对STM32进行开发。

随着STM32Cube HAL的推出,很多攻城狮(包括以前的,和新初学的)就开始着手转入使用STM32Cube HAL进行开发,原因在于可以使用STM32CubeMX这套图形化的工程直接生成初始化代码和相应工程文件,极大地方便和节省了攻城狮的时间

但是,使用STM32Cube HAL开发,很多攻城狮发现一个问题,使用STM32Cube HAL开发生成的代码量比标准外设库的要大,而且执行的效率也不够高。所以,ST团队就着手开发了一套技能满足标准外设库优点,又能满足STM32Cube HAL优点的库,那就是STM32Cube LL。

STM32Cube LL是2017年推出的,目前还处于研发初期。因此,网上有许多开发者发现了一些问题,不过相信随着时间的推移,这些bug都会得到解决。


2直接操作寄存器及三种ST库的代码性能对比

Cube LL库的推出,就是因为发现了【标准外设库及【Cube HAL库】存在的不足才推出。


因此,本节让大家了解一下直接操作寄存器、标准外设库SPL、Cube HAL库和Cube LL库这四种方法的代码性能对比。

640?wx_fmt=jpeg

这个测试结果来自ST社区,在网上搜索Cube LL都能找到,结果已经很明显对比出来这四种方式的差异(不要说你看不来这个结果哦)。


针对上图(GPIO翻转、 TIM PWM 输出 ADC DMA 数据采集DMA M2M四组数据,分别对Flash 占用量、 SRAM 占用量和执行代码的效率这三项指标对比测试),我这里简单讲几点:

1.ROM代码和RAM占用量最小的属于直接操作寄存器WED,对于ROM资源较小的芯片具有优势;


2.执行效率最高的也属于WED,但是代码编辑、移植性和可读写都较差。一般不建议使用该方式(其实汇编语言比这还有优势)


3.三项指标中,除了WED之外,SPL和Cube LL相近(不相上下,也相比Cube HAL就有优势。所以,SPL和Cube LL是四种之中最佳选择的两种。


4.SPL和Cube LL各有特点:SPL库成熟,可读性(特别针对初学者)很好,查找问题也方便; Cube LL可以使用STM32CubeMX图形化工具直接生产初始化代码和工程,在这方便也具有明显优势。

3STM32CubeMX直接生成Cube LL库函数的方法

这一节内容简述一下,主要就是你要学会使用STM32CubeMX这个图形化工具。

我们可以使用STM32CubeMX这个工具生产Cube HAL和Cube LL两种不同库的代码工程,就是需要通过配置,选择不同的库

在你相关配置都就绪,准备生成代码工程之前Project -> Settings -> Advanced Settings选择LL即可(默认是HAL)。

640?wx_fmt=png

零基础的朋友可以参看下面文字:

1.STM32CubeMX介绍、下载与安装

2.STM32CubeMX使用方法及功能介绍

3.STM32CubeMX新建工程+基本IO配置过程


4STM32标准外设库SPL转换成Cube LL的方法

这ST为了使更多攻城狮使用Cube LL库,专门做了一个兼容个转换工具,就是SPL2LL_Converter】,它可以将你之前标准库的代码转换成Cube LL库的代码,方法比较简单。

SPL2LL-Converter网址:

https://www.stmicroelectronics.com.cn/zh/development-tools/spl2ll-converter.html


在上面网址就可找到相关文档下载转换工具。但需要提前安装一个叫【ActivePerl】的工具。

activeperl下载地址:

https://www.activestate.com/activeperl/downloads

640?wx_fmt=png

嫌麻烦的朋友可以到我的百度网盘下载:

http://pan.baidu.com/s/1dFMFwHF

提示:微信公众号不支持外链接(复制链接到浏览器下载),网盘后期有可能失效。


转换的操作比较简单,打开转换工具,找到需要转换的源代码文件夹,设置转换后文件夹,点击“Migrate”即可开始。

640?wx_fmt=png

这个工具就是逐步浏览你的文件,并检索里面源代码是不是标准外设库,如果是则进行相应转换。因为做大量的对比工具,所以说,转换的速度相对较慢。


好啦,本文就到这里,希望对你有帮助。


推荐阅读

1.STM32CubeMX使用方法及功能介绍

2.利用STM32 ST-LINK Utility查看内核运行状态,助你判断程序是否跑飞

5最后

若觉得文章好,记得点赞、分享。扫描下面二维码、关注,在底部菜单中查看更多精彩内容!

640?wx_fmt=jpeg

长按识别图中二维码关注

640


赞赏是对作者的认可与支持!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以通过官方网站或者STMicroelectronics的官方支持网站下载STM32标准外设。 首先,打开STMicroelectronics的官方网站(https://www.st.com/),然后在搜索框中输入“STM32 Standard Peripheral Library”。点击搜索按钮后,会显示相应的搜索结果。在搜索结果中选择适合你所使用STM32系列的外设版本。 在选择了合适的外设版本后,你需要下载相应的压缩文件。这个文件应该是以压缩格式(例如zip或tar.gz)进行存档的。 一旦下载完成,你需要解压缩这个压缩文件。解压缩后,你会得到一个包含文件以及相关文档和示例代码的文件夹。 接下来,你可以将这些文件复制到你的STM32开发环境的合适目录下。具体到各个开发环境可能会有所不同,但一般来说,你应该将文件放置在一个可被编译器搜索到的地方。 完成上述步骤后,你就可以开始使用STM32标准外设来开发你的项目了。你可以通过包含相应的头文件以及链接文件的方式,在你的代码中调用外设的函数和使用其中定义的结构体和宏。 需要注意的是,STM32标准外设是以C语言编写的,并且是针对具体的STM32系列和型号的。因此,在使用外设之前,你需要确保你所选择的外设版本与你的STM32型号兼容,并参考相关文档来了解如何正确配置和使用其中的外设功能。 总结来说,通过STMicroelectronics的官方网站或官方支持网站下载STM32标准外设是一个步骤简单且可靠的方法,它能够帮助你更好地利用STM32外设功能来进行开发和设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strongerHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值