0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-08 12:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天分享几点内容:

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库这四种方法的代码性能对比。

这个测试结果来自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)。

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

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129035
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371058
  • spl
    spl
    +关注

    关注

    0

    文章

    21

    浏览量

    16680
  • 标准外设库
    +关注

    关注

    0

    文章

    16

    浏览量

    3752
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    pdf转换成word文档格式乱了

    df转换成word文档格式乱了   将 pdf 转为 word 是常见的操作,但很多人发现结果很乱,文字会移位,字体变化,表格断裂,图片偏离原位.这是因为 pdf 存储的是最终的排版用于显示或打印
    的头像 发表于 11-22 10:04 736次阅读

    pdf如何转换成pptx

    df如何转换成pptx   将 pdf 转成 powerpoint pptx 文件是很常见的需求,当你需要把现有文档内容做成幻灯片时可以这样做,本文介绍一些简单实用的步骤,可以用免费工具或内置软件
    的头像 发表于 11-22 09:42 661次阅读

    STM32F4标准外设资料

    stm32f4xx.h,标准外设
    发表于 06-08 09:49 5次下载

    如何将HAL转为LL

    怎么将HAL转为LL
    发表于 03-10 06:08

    请问STM32G431 flash和can为什么没有LL

    STM32G431 flash和can为什么没有LL
    发表于 03-07 06:48

    用FPGA配置TVP5150,把PAL制标准视频转换成BT656数据格式,能否把数据流直接给SAA7121?

    用FPGA配置TVP5150,把PAL制标准视频转换成BT656数据格式,请问能否把数据流直接给SAA7121这样的编码芯片,我这么做的,但是出来的图像是红色的,是不是寄存器没配置对?还是其他什么原因?
    发表于 02-11 07:14

    DAC3162输出是电流型的,这个能不能转换成电压型的,复杂吗?

    DAC3162输出是电流型的,这个能不能转换成电压型的,复杂吗?或者帮我重新选型一下,参数:工作速率300MHz,采样带宽大于30MHz,量化12bit,输出的频率15MHz+-5MHz,内部有放大器,输出功率0+-2dBm,即0.83mW至1.6mW,带外抑制大于50dBc,谢谢!!!
    发表于 02-11 06:36

    请问如何用Verilog实现将ascaii码数值字符串转换成定点数?

    我需要接收一个ascaii码字符串,内容是12位有效数字的数值,带小数。我不知道怎么把小数部分转换成定点数。
    发表于 01-23 21:57

    ADC的值如何转换成电压值?

    ),读出来的还是ADS1115默认的0x85 2:我没看明白ADC的值如何转换成电压值,比如电源电压是3.3V,并且PGA设置为2,FS为+-2.048V,则如何通过ADC计算电压值? 望指导,谢谢前辈
    发表于 01-10 08:17

    AN-1249:使用ADV8003评估板将3D图像转换成2D图像

    电子发烧友网站提供《AN-1249:使用ADV8003评估板将3D图像转换成2D图像.pdf》资料免费下载
    发表于 01-08 14:28 0次下载
    AN-1249:使用ADV8003评估板将3D图像<b class='flag-5'>转换成</b>2D图像

    请问ADS1220采样数据负数怎么转换成电压?

    采用如图1所示的三线法PT100测温,设置ads1220输出10uA的电流源,外部参考电压为40.3mv,采样数据转换成电压的函数如图2所示.正压转换成电压时没问题,负压时转换有错,什么原因呢?还有,怎么会有负压输出呢?
    发表于 01-06 07:57

    请问ldc1000怎么把proximtyData转换成距离?

    尊敬的ti工作人员,请教您ldc1000怎么把proximtyData转换成距离?
    发表于 01-02 06:06

    ADS553模拟量是怎么转换成数字量的?

    您好!请问ADS553这个AD芯片,它的输入是差分输入,有两个参考电压,输出是14位二进制补码格式,我想问:对于差分输入的AD,模拟量是怎么转换成数字量的,比如:当输出为14个1时,我的AD差分
    发表于 12-27 06:10

    请问ads1293采集到的数据怎么转换成实际电压值,是通过公式吗?

    请问ads1293采集到的数据怎么转换成实际电压值,是通过公式么?其中vinp-vinm是所要的心电电压么?adcout是不是测到的数据?十分感谢
    发表于 12-10 07:02

    AMC1303M2520所输出的信号经过STM32的DFSDM外设进行采集滤波后,得出的数据转换成波形与实际波形不一致怎么解决?

    的DFSDM外设进行采集滤波后,所得出的数据转换成波形与实际波形完全天壤之别,所以在此进行求助。 1.第一个问题是,我们计划用AMC1303M2520来采集40KHZ的正弦信号的方案是否是可行的呢? 2.第二个问题是,我们目前在DFSDM中配置的是Sinc2阶,25过采样
    发表于 12-06 06:05