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

发布时间:2024-08-27  

今天分享几点内容:

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”即可开始。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    ASCII码对应表,ASCII码值的大小顺序;刚开始基础计算机编程的时候,学习的是二进制、十进制、十六进制。 十进制是生活习惯中最常用的计数方法,也是我们计数的思维逻辑。 后来接触了计算机基础,我们知道计算机都是用二进制......
    保存的第二种方式,它会保存屏幕显示或指定通道的波形数据,以“*.csv”格式存到本地闪存和外部存储器U盘中,是一种逗号分隔值文件格式,其文件以纯文本形式存储表格数据,它会将需要的二进制数据转换成ASCII码,以ASCII......
    、TBL_FIND ( Table Find 表格查找 ) :表查找 64、BCD_I ( Binary Coded Decimal _I 二进制编码的十进制 ):BCD 码转整数 65、I_BCD ( I_......
    以一定的精度表示模拟量信号。 二、二进制、十六进制和十进制 所有的数据在PLC中都是以二进制形式表示的。 数据都有其特定的长度和表示方式,称为格式。 数据的格式与用于运算、处理它的指令相关。 以不......
    在编译后会自动生成其标准的ASCII码,然后将该ASCII码送入显示RAM,内部控制电路会自动将该ASCII码对应的字符点阵在LCD1602上显示出来。   2 程序设计 2.1 LCD1602控制程序及头文件......
    部分转换为字符串 str[len++] = '.'; //添加小数点 decT = (decT*10) / 16; //二进制的小数部分转换为1位十进制位 str[len++] = decT + '0'; //十进制......
    电平之间的转换。 (2)软件编制 编制软件的目的,是为了从Boot ROM中读出源代码,并送往上位机显示。为了使用现成的软件(如超级终端),程序中将读出的二进制代码转换成ASCII码,并组成HEX文件......
    出能够有效解决问题的行动建议。 具体如下: 关注二进制文件和源代码 现代软件供应链只有一项交付到生产中的核心资产:软件二进制文件,它有多种形式——从数据包到容器,再到归档文件。攻击者日益聚焦于攻击二进制文件......
    显示原理 UCDOS软件中的文件HZK16与文件ASC16分别为1 6×1 6的国标汉字点阵文件和8×1 6的ASCII码点阵文件,以二进制格式存储。在文件HZK 16中,按汉......
    三菱plc数制转换及位、字数据的相互表示; 数据格式的转换和显示在plc的使用中非常重要。 在plc中数据的表示有二进制、8进制、10进制、16进制、BCD码......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>