STM32LL库系列教程(一)—— LL库概览及资料

 **开发平台**  :  
 正点原子  探索者STM32F407ZET6
 cube mx:V 5.1.0
 keil uVision5

项目地址:
github : https://github.com/liliang1918/STM32LL
码云 :https://gitee.com/liang1918/stm32_ll_library

注意:
本教程默认读者已经对stm32和cubemx软件有一定了解;
为节省篇幅,详细配置cubemx的步骤仅在此篇中说明,以后仅会简略介绍配置相关内容。
STM32LL库系列教程(一)———— LL库概览及资料
总体介绍LL库的优势及资料获取

系列教程目录

STM32LL库系列教程(一)—— LL库概览及资料
STM32LL库系列教程(二)——点亮LED灯
STM32LL库系列教程(三)——串口中断
STM32LL库系列教程(四)——外部中断
STM32LL库系列教程(五)——定时器中断
(这个系列暑假期间正在完善,所以有的链接打不开是因为文章还是草稿状态,见谅!)

1. LL库应用场景

用过STM32的朋友,对于标准库 STD库Standard Peripheral Libraries)和HAL库Hardware Abstraction Layer)应该都不会陌生。事实上,ST在推行HAL库的时候,逐渐停止了对于标准库的更新(新出的芯片以及不再提供标准库了),但他们也意识到了HAL库效率较低的问题,因此同时也推出了LLLow-layer

所以,当我们针对一些低性能(M0)或者低功耗(L系列)的芯片编程时。相较于HAL库的低效率,寄存器操作的复杂,标准库的逐渐淘汰。LL库就成为了替代HAL库一个比较好的选择了。

2. LL库官方介绍

为了准确介绍LL库的大致内容,笔者从HAL&LL F1的官方手册(Description of STM32F1 HAL and Low-layer drivers)中截取部分内容并附上翻译

在这里插入图片描述

低层驱动程序概述低层(LL)驱动程序旨在提供快速的轻量级面向专家的层,该层比HAL更接近硬件。与HAL相反,对于优化访问权限不是关键功能的外围设备,或需要大量软件配置和/或复杂上层堆栈(例如FSMC,USB或SDMMC)的外围设备,则不提供LL API。
LL驱动程序功能: ·

  • 一组函数,用于根据数据结构中指定的参数初始化外围主要功能
  • 一组函数,用于用每个字段的重置值填充初始化数据结构
  • 执行外围设备反初始化的功能(外围设备寄存器恢复为默认值)
  • 一组内联函数,用于直接和原子寄存器访问
  • 由于LL驱动程序可以在独立模式下(无HAL驱动程序)或在混合模式下(有HAL驱动程序)使用,因此与HAL完全独立
  • 全面介绍了支持的外围功能。

低层驱动程序根据STM32外设的可用功能提供硬件服务。这些服务恰好反映了硬件功能,并提供了一次操作,必须遵循微控制器产品线参考手册中描述的编程模型进行调用。结果,LL服务不执行任何处理,并且不需要任何其他内存资源来保存其状态,计数器或数据指针:所有操作都是通过更改关联的外设寄存器的内容来执行的。

LL库的手册翻译,我会再出一篇博客。以上为简单介绍
3. LL库资料

LL库的手册基本是放在HAL库手册中的,作为HAL库的一个补充。笔者已经找到了STM32各系列型号对应的HAL&LL库的官方手册。链接如下:

链接:https://pan.baidu.com/s/1PuUF4x780O-ZDjvqK_Z5gg 
提取码:ldqd

在这里插入图片描述

4. LL库的性能优势

在这里插入图片描述

上图转载自
STM32使用HAL库、标准库、LL库和寄存器操作的性能对比_u014519486的博客-CSDN博客_hal库 寄存器
https://blog.csdn.net/u014519486/article/details/102800532

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

5. LL库的使用方法

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

  • 63
    点赞
  • 269
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值