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

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

3天内不再提示

关于STM32的四类嵌入式软件 (库)

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-04 09:27 次阅读

关注我的朋友中,初学者比较多,今天就写点基础知识。

1写在前面

陆续收到一些朋友的问题:

1.我是选择寄存器开发STM32,还是标准外设库呢?

2.你有STM32L0标准外设库吗?

3.HAL库和LL库有什么差异?

。。。

针对STM32开发使用的嵌入式软件,或者我们说的库,可以分为四类:

STM32Snippets

Standard Peripheral Library

STM32Cube HAL

STM32Cube LL

下面就写一下关于这四种库的相关内容、以及对比应用等。

2

STM32Snippets

什么是STM32Snippets?

STM32Snippets是高度优化的代码示例集合,使用符合CMSIS的直接寄存器访问来减少代码开销,从而在各种应用程序中最大化STM32 MCUs的性能。

每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。

地址:

https://www.st.com/en/embedded-software/stm32snippets.html?querycriteria=productId=LN1898

STM32Snippets可以理解为我们常说的“寄存器”开发STM32的底层驱动代码。

主要针对的底层开发人员,或者从51转过来,直接操作寄存器开发的人员。 是没有经过封装,可见底层寄存器的一套示例代码。


STM32Snippets目前官方只提供:STM32F0和L0的示例代码包。

3

Standard Peripheral Library

Standard Peripheral Library:简写SPL,也叫标准外设库。

标准外设库相信学习过STM32的朋友都不陌生,是一组外围设备的C语言代码集合。

标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。

地址:

https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939

目前标准外设库支持STM32F0、 F1、 F2、 F3、 F4、 L1,不支持F7、 H7、 L0、 L4、 G0等系列。

所以,不要再问:在哪里下载L0的标准外设库了。

4

STM32Cube HAL 和 LL

HAL:Hardware Abstraction Layer,硬件抽象层库

LL:Low-Layer,底层库

STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。

HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。

LL库相对HAL,具有简单的结构,针对之前从事SPL,或寄存器开发的人员。

地址:

https://www.st.com/stm32cubemx

最近新增了STM32Cube MP1。

STM32Cube HAL 和 LL是目前官方重点维护和更新的库,也建议大家都学习一下。而且新出来的型号(如L4、G0等)就只有STM32Cube HAL 和 LL库了。

5

四种库对比

来自官方的对比信息,包含可移植性、优化、难以程度等。

其中:

Portability:可移植性

Optimization :优化

Easy:难易程度

Hardware coverage:硬件覆盖


定位:

支持器件:

最近新增了STM32Cube MP1,官方没有统计上。

库之间的转移:

本文就到这里,希望以上内容对你有所帮助!

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

    关注

    4983

    文章

    18294

    浏览量

    288568
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348846
  • stm32cubemx
    +关注

    关注

    5

    文章

    260

    浏览量

    14448
  • HAL库
    +关注

    关注

    1

    文章

    112

    浏览量

    5894
收藏 人收藏

    评论

    相关推荐

    如何获取STM32MP157的嵌入式Linux的OpenGL

    请问,如何获取STM32MP157的嵌入式Linux的OpenGL
    发表于 03-15 07:21

    嵌入式人工智能的就业方向有哪些?

    的发展方向有很多,门槛高低不一样。下面给大家列举一些相应岗位所需具备的技能: 一:嵌入式Linux,C语言开发工程师,Linux软件开发工程师 LinuxC语言开发 LinuxC语言开发进阶 Linux
    发表于 02-26 10:17

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件嵌入式软件通常是指
    发表于 02-19 11:23

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得软件和硬件的结合更加高效,适合从事
    发表于 02-02 15:24

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、protel设计软件,有层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规
    发表于 12-05 15:17

    嵌入式软件的问题分析

    嵌入式软件的问题分析 1 问题背景一切为了进度,软件开发的首要目标就是以最快的速度满足客户需求,“快”是第一要素,但是短期指标;可复用性、扩展性等长期指标被忽略,导致后期的维护、功能增减调整都非常
    发表于 11-17 09:29

    嵌入式软件设计和单片机软件设计的区别是什么?

    嵌入式软件设计和单片机软件设计目前的应用很多,这两者有什么区别? 嵌入式主要说的什么?结构是啥!
    发表于 11-10 07:46

    什么是嵌入式Linux?

    之有运行程序的能力与作用。在很多智能家电开发,智能产品的研究上有着主导的作用。(对个人、团队开发产品有兴趣的朋友一定要看看嵌入式!) linux的嵌入式系统开发,涵盖了从硬件到软件设计的多个领域,并且
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺
    发表于 10-08 15:05

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。• 负责
    发表于 09-28 06:59

    STM32F1_HAL使用手册

    版包括:  STM32CubeMX,一个允许生成C初始化的图形软件配置工具使用图形向导编写代码。  一个全面的嵌入式软件平台,按系列提供(如ST
    发表于 09-28 06:21

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图
    发表于 09-18 15:31

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。• 负责
    发表于 09-11 07:24

    如何获取STM32MP157的嵌入式Linux的OpenGL

    请问,如何获取STM32MP157的嵌入式Linux的OpenGL
    发表于 08-05 06:06

    什么人适合学习嵌入式开发?

    嵌入式开发又分为两,这两各有特点,当然需要的资质也完全不同: 一是学电子工程、通信工程等偏硬件专业出身的人,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层
    发表于 06-07 15:55