STM32标准库转LL库代码

发布者:温暖阳光最新更新时间:2022-02-15 来源: eefocus关键字:STM32  标准库  LL库 手机看文章 扫描二维码
随时随地手机看文章

一、四种库比较

LL库,即STM32Cube Low-Layer,也叫Cube LL、Cube底层库等。

开发STM32通常有四种“库”,寄存器、标准外设库、HAL、LL。

早在2014年,ST推出了STM32CubeMX这款工具,同步推出了对应的STM32Cube HAL库。


但是,HAL存在一些问题:代码量大、执行效率低等缺点。

因此,在2017年,ST推出了STM32Cube LL库,目的就是为了解决的HAL库的缺点,让开发STM32的工程师有更多的选择。


之前有工程师总结了寄存器、标准外设库、HAL、LL四种库的代码性能:

(来源ST社区)

针对上图(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图形化工具直接生产初始化代码和工程,在这方便也具有明显优势。

-----------------------------------------------------------------------------------------------------------------

二、为什么要用LL库?

上面讲述了关于LL库,以及其他几种库的内容,你会发现,几种库开发STM32各有各的优势。


1.对于RAM和Flash这种资源比较少的STM32,除了用标准外设库之外,LL库就是一个很好的选择。

2.使用LL库配置的代码,相对自己参考寄存器手册配置的代码,LL库API接口更规范,更具有移植性。

3.有些芯片,没有标准外设库,只有早期推出的STM32才有标准外设库,包含F0、 F1、 F2、 F3、 F4、 L1:

新出来的(像F7、L4、G0等)这些芯片只能使用目前的HAL、LL库,或者你自己参考手册配置寄存器(不是特殊情况,我不建议自己配寄存器)。

-----------------------------------------------------------------------------------------------------------------

三、利用SPL2LL工具转换代码

SPL2LL即标准外设库转LL库的转换器工具。

SPL2LL主要特点:

  • 免费

  • 显示源代码迁移状态

  • 生成C代码,适用于IAR,Keil和GCC编译器

  • 支持Windows、Linux和MacOS操作系统

-----------------------------------------------------------

1.ActivePerl下载安装

在使用SPL2LL工具之前,需要安装【ActivePerl】这个工具,不然会提示错误:

Error : cannot find perl, please verify that you have perl (>5.24.1) installed and added to path

Then restart the application

-----------------------------------------------------------

2.安装

SPL2LL工具不需要安装,直接点开即可使用,但前提需要安装【ActivePerl】工具。

【ActivePerl】安装比较简单,一路Next下去即可。

-----------------------------------------------------------

3.使用SPL2LL

SPL2LL使用方法很简单,选在源和目标的型号、路径,然后执行即可。

选择好之后,点击“Migrate”即可执行转换。

这里需要耐心等待,比较费时间,原理就是遍历你源码中标准库,然后转换成LL库。

-----------------------------------------------------------

4.转化代码前后对比

你会发现,即使被屏蔽的代码也进行了SPL转LL。

主要内容就分享到了,希望对你有帮助。

相关转换软件与说明移步:download.csdn.net/download/liht1634/34007995。

HAL与LL库文档移步:download.csdn.net/download/liht1634/34024517。


关键字:STM32  标准库  LL库 引用地址:STM32标准库转LL库代码

上一篇:STM32单片机介绍1
下一篇:STM32单片机-加密烧录Hex

推荐阅读最新更新时间:2024-11-23 11:42

STM32的四种输出模式
1、普通推挽输出(GPIO_Mode_Out_PP): 使用场合:一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。 使用方法:直接使用 输出电平:推挽输出的低电平是0V,高电平是3.3V。 2、普通开漏输出(GPIO_Mode_Out_OD): 使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。 使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。 输出电平:在开漏输出模式时,如果输出为0,低电平,则使N_MOS 导通,使输 出接地。若控制输出为1(无法直接输出高电平),则
[单片机]
意法半导体STM32软件包,让简单的IoT产品具有亚马逊的Alexa技术
2018年4月2日,中国——意法半导体的X-CUBE-AVS软件包让亚马逊的Alexa语音服务(AVS)能够运行在STM32*微控制器上,使具有云智能功能(自动语音识别和自然语言理解)的高级会话用户界面出现在简单的物联网设备上,例如,智能家电、家庭自动化设备和办公设备。 作为STM32Cube软件平台的扩展包,X-CUBE-AVS包含直接可用的固件库和开放例行程序,这有助于将AVS SDK(软件开发套件)快速移植到微控制器上。此外,该软件包还集成应用代码示例,开发人员无需开发嵌入式设备运行AVS所需的复杂软件层。AVS开发工具通常是为能耗和价格较高的微处理器设计,而X-CUBE-AVS是同类首个微控制器专用软件包,让更多的
[半导体设计/制造]
STM32 数据类型定义
在 Keil MDK 开发环境中,经常会遇到类似于unsigned int 8、uint8_t 、u8等数据变量定义,对于初学者来讲确实是有点痛苦,后来查询发现以上三种方式均表示——无符号的8位整形数据。 由于C语言类型的长度完全由编译器决定,char 通常被定义成 8 位宽;int 通常被定义成 16 位或 32 位宽(或更高),它取决于平台(编译器将在这两者间选择最合适的字宽);short 通常被定义成 16 位宽;long 通常被定义成 32 或 64位宽。 所以 C99 中引进了一个标准C库头文件 stdint.h ,方便精确确定整数类型的宽度 定义标准的扩展整数类型_stdint.h文件(部分) /* Signe
[单片机]
stm32在中断函数里执行初始化函数
最近用了stm32f030c8t6,要求做低功耗: 1、关闭外设时钟并把管脚都配置成模拟输入后,大概满足要求了,然后进入stop模式。 2、接着由外部中断唤醒,唤醒后重新初始化所有的外设,继续运行。 但是唤醒后程序一直停在延时函数的地方,原来是systick中断函数不能执行了。找了好久才想起来,我的唤醒初始化函数是在外部中断函数中执行的,初始化函数中用了延时函数,延时需要执行systick中断函数,中断函数执行不完,systick自然不能执行中断函数,所以一直停着不动了。
[单片机]
STM32 SHT10温湿度传感器的信号采集
首先讲讲SHT10这款温室度传感器。SHT1x(包括SHT10,SHT11和SHT15)属于Sersirion温湿度传感器家族中的贴片封装系列。更之前我讲过的DHT11这款温湿度传感器相比,体积小了许多,特别适合用于产品中。SHT10温湿度传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件(文绉绉的),传感器内部有一个精度高达14为位的A/D转换器,适应串行接口电路实现无缝连接。该产品具有品质卓越、响应速度速度快,抗干扰能力强、性价比高等优点。 1、接口定义: SHT10的接口定义如下图所示: 如上图所示,1脚为GND,4脚为VDD。它的供电电压范围为2.4~5.5V,建议的电压为3.3V,在电源引脚(VD
[单片机]
<font color='red'>STM32</font> SHT10温湿度传感器的信号采集
【stm32+uC/OS-II】ucosii移植简单详细步骤
μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。 μC/OS-II已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B标准。 ——摘自百度百科 经过三天对uC/OS-II的研究和琢磨,成功移植了自己的uC/OS-II;回首看下,简单的移植是非常简单的;可能这句话比较啰嗦,等我下面解析完之后就认同了; 首先,来附图,我相信只要刚刚认识ucosii的人,都见过这种类型的图了;而且版本
[单片机]
【stm32+uC/OS-II】ucosii移植简单详细步骤
STM32无法正常输出PWM信号的原因及解决方法
PWM(Pulse Width Modulation)脉宽调制技术在嵌入式系统中应用广泛,可以控制电流或电压的大小,从而实现对电机转速、亮度等的调节。然而,在使用STM32系列微控制器时,有时会遇到无法正常输出PWM信号的问题。本文将探讨STM32无法正常输出PWM信号的原因,并提供解决方法。 一、引脚配置错误 STM32微控制器的每个IO引脚都有多个功能,包括GPIO、UART、SPI、PWM等。正确配置PWM功能的引脚是实现PWM输出的第一步。首先,检查引脚是否使用了正确的模式和功能。其次,确认引脚的时钟使能是否正确。通过使用寄存器操作来确保引脚的正确配置。例如,通过RCC/APBxENR和GPIOx_MODER等相关寄存
[单片机]
STM32 ucos 下添加CAN模块
1.CAN IO RX TX 的设定和重映射 GPIO_PinRemapConfig(GPIO_Remap2_CAN, ENABLE); //端口重映射到PD0,PD1 2.clock CAN IO CLOCK 的开启 、*-------gpio for can------------*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE); CAN 自身CLOCK 的开启、 /* CAN Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN
[单片机]

推荐帖子

MSP430F2232时钟频率问题
MSP430F2232外接晶振,在第5、6脚32.768KH的晶振可以测试出波形,换用16MH的晶振就测试不出波形。不知为什么?MSP430F2232时钟频率问题你设置过XTS=1(在BCSCTL1中)了没有?TheLFXT1oscillatoralsosupportshigh-speedcrystalsorresonatorswheninHFmode(XTS=1,XCAPx=00).Thehigh-speedcrystalorresona
sunline 微控制器 MCU
C6000 DSP似乎在国内木有多少人用,对吧?
大家好!!用C6000DSP的人是不是越来越少了?为什么?是因为ARMA系列吗?C6000DSP似乎在国内木有多少人用,对吧?太高端,不会玩。不懂算法,玩不起来。价格太高,买不起。
平湖秋月 DSP 与 ARM 处理器
基于STM32F7的视觉小球颜色识别系统--硬件完结篇
硬件部分采用的手工点锡膏和收工回流焊的方法制作,简单方便,适合样板的制作和少量PCB的制作;公司有2种工具可以制作,一种直接烤PCB也是很方便的,如图所示,另外一种就是小型的回流焊机器了,也蛮不错的。图1普通的回流焊图2专业回流焊机器硬件部分的难点在于FPC的焊接,收工焊接0.5mm的FPC座有一定的难度,特别是以前没有焊接过的,不小心PFC座很容易报废掉,红圈部分要注意;yyefree说的
DavidZH stm32/stm8
【MSP430共享】上传一个MSP430资料和学习板的例子
上传蔡大侠的资料例子、望谅解【MSP430共享】上传一个MSP430资料和学习板的例子aaggggggggggggggggggggg 好东西,好好看看!谢谢分享!哇,这么好的资料,必须回帖,顶起来!楼主辛苦了帮顶!回复板凳机动哥的帖子资料虽好但是看过的人有几个!楼主这个阵容强大这。。。太强大了!!赞楼主~~下载完,分就没了楼主强大下的手都麻了部分还不了解,看看吧楼主收藏这么多资料啊!谢谢!新手围观谢谢了啊,正是需要的帅啊~~~谢谢
机动哥 微控制器 MCU
时钟分频的好资料
时钟分频的好资料
至芯科技FPGA大牛 FPGA/CPLD
当你面试电源类岗位时,你遭遇到过什么样的问题?
今天来聊点工作上的事儿:当你面试电源类岗位时,你遭遇到过什么样的问题?前人的面试经验对其他想要面这类岗位的小伙伴们是非常宝贵的,热心的大侠们,快来分享分享你的面试经历,给其他小伙伴们参考一下吧!在这里也先预祝下大家们都面试顺利~一路绿灯通过,收入和福利待遇都杠杠好~~下面是管管在网络上搜索到的一些电源面可能出现的问题,小伙伴们也可以试试来回答一下哦~~一、基础知识类 请简要介绍电源开发岗位的基本职责和工作内容。 请描述一下您
okhxyyo 电源技术
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved