jjzjj

1、STM32CubeMX和STM32Cube库(HAL)详细介绍

追逐者-桥 2023-11-10 原文

目录

前言

STM32Cube生态

STM32Cube 是什么?        

STM32Cube 软件工具套件

STM32Cube Embedded 软件

STM32CubeMX

​编辑


前言

        也许大家在学习正点原子或者其他32视频和代码的时候都听过HAL库,是的这是ST官方最新的函数库,而以前的标准库已不再更新与发展。而跟随而来的就是STM32CubeMX图形化编程方式的兴起,图形化编程方式除了编程简单,图形化编程配置好后能够转换成响应的代码,极大的方便了开发者的开发,而且其具有很好的移植性,图形化编程方式已经成为了单片机开发的主流。对于国内的一些教程对其介绍的比较少,因此本人来到了ST管网查看,也建议想了解的去ST官网看。当然也可以看本博客的介绍。

本人接下将整理ST官方上关于STM32CubeMX图形化编程软件和STM32Cube库里面的介绍。

ST官方开发者社区:

STM32 MCU Developer Zone - STMicroelectronicshttps://www.st.com/content/st_com/zh/stm32-mcu-developer-zone.html

STM32Cube生态

STM32Cube - Discover the STM32Cube Ecosystem - STMicroelectronicsSTM32Cube is a combination of software tools and embedded software libraries for STM32 microcontrollers and microprocessors. Get inside the STM32Cube ecosystem and explore our complete and free development environment for STM32 MCUs and MPUs.https://www.st.com/content/st_com/en/ecosystems/stm32cube-ecosystem.html

STM32Cube 是什么?        

STM32Cube是软件工具和嵌入式软件库的组合:

  • 一套完整的 PC 软件工具,可满足整个项目开发周期的所有需求
  • 在 STM32 微控制器和微处理器上运行的嵌入式软件块,将带来各种功能(从 MCU 组件驱动程序到更高级的面向应用的功能)

STM32Cube 软件工具套件

  • STM32CubeMX,任何 STM32 设备的配置工具。这个易于使用的图形用户界面为 Cortex-M 内核生成初始化 C 代码,并为 Cortex-A 内核生成 Linux 设备树源。
  • STM32CubeIDE,集成开发环境。该 IDE 基于 Eclipse 或 GNU C/C++ 工具链等开源解决方案,包括编译报告功能和高级调试功能。它还集成了生态系统中其他工具中存在的其他功能,例如 STM32CubeMX 的硬件和软件初始化和代码生成。
  • STM32CubeProgrammer,一个编程工具。它通过各种可用的通信介质(JTAG、SWD、UART、USB DFU、I2C、SPI、CAN 等)为读取、写入和验证设备和外部存储器提供了一个易于使用且高效的环境。
  • STM32CubeMonitor系列工具。强大的监控工具,可帮助开发人员实时微调其应用程序的行为和性能。

STM32Cube Embedded 软件

  • STM32Cube MCU 和 MPU 包,专用于每个 STM32 系列包提供所有必需的嵌入式软件块来操作可用的 STM32 外设集。它们包括驱动程序(HAL、LL低层等)、中间件和大量用于各种实际用例的示例代码。提供适用于特定 MCU 或 MPU 外设的附加中间件。
  • STM32Cube 扩展包,面向应用的解决方案。作为对 STM32Cube MCU 软件包产品的补充和扩展,STM32 扩展软件包来自意法半导体或经批准的合作伙伴,旨在围绕 STM32 创建广泛且可扩展的嵌入式软件产品。

STM32CubeMX

概述 

        STM32CubeMX 是一个图形工具,可以非常轻松地配置 STM32 微控制器和微处理器,以及为 Arm ® Cortex ® -M 内核或用于 Arm ® Cortex ®的部分 Linux ®设备树生成相应的初始化 C 代码-一个核心,通过一个循序渐进的过程。

        第一步包括选择与所需外设集匹配的 STMicrolectronics STM32 微控制器、微处理器或开发平台,或在特定开发平台上运行的示例。对于微处理器,第二步允许为整个系统配置 GPIO 和时钟设置,并以交互方式将外设分配给 Arm ® Cortex ® -M 或 Cortex ® -A 世界。特定的实用程序,例如 DDR 配置和调整,可以让您轻松开始使用 STM32 微处理器。对于 Cortex ® -M 内核,配置包括与为微控制器描述的步骤完全相同的额外步骤。
        对于微控制器和微处理器 Arm ® Cortex ® -M,第二步是配置每个所需的嵌入式软件,这要归功于引脚冲突解决程序、时钟树设置帮助程序、功耗计算器和配置外设的实用程序(例如 GPIO 或 USART)和中间件堆栈(例如 USB 或 TCP/IP)。借助增强的 STM32Cube 扩展包,可以扩展默认软件和中间件堆栈。STMicrolectronics 或 STMicrolectronics 的合作伙伴包可以直接从 STM32CubeMX 中提供的专用包管理器下载,而其他包可以从本地驱动器安装。

功能

  • 直观的 STM32 微控制器和微处理器选择
  • 丰富易用的图形用户界面允许配置:
    • 具有自动冲突解决的引脚分配
    • 外设和中间件功能模式,可动态验证 Arm ® Cortex ® -M 内核的参数约束
    • 具有配置动态验证的时钟树
    • 具有估计消耗结果的电源序列
  • 生成初始化 C 代码项目,符合用于 Arm ® Cortex ® -M 内核的 IAR Embedded Workbench ®、MDK-ARM 和 STM32CubeIDE(GCC 编译器)
  • 为 Arm ® Cortex ® -A 内核(STM32 微处理器)生成部分 Linux ®设备树
  • 借助 STM32PackCreator 开发增强型 STM32Cube 扩展包
  • 将 STM32Cube 扩展包集成到项目中
  • 作为在Windows®、Linux®和 macOS® ( macOS®是Apple Inc. 在美国和其他国家注册的商标。)操作系统和 64 位 Java Runtime 环境上运行的独立软件的可用性

软件获取

https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html?dl=fm37Hrej2ueFHuPZi%2FFxLA%3D%3D%2CK1PkeEd5kdJI0liSHjkg%2F2%2FyXR3XxkyTHRRMXoxMUpvu7QC61iHrdbcjwYM5BVEYFhNbiqBlYVM%2FBNUQUFtDuM13e0gDgRL%2BBU3x%2F7hiAYLxTeIRfMBi7scEgOk0NgV3D17oXU8RUCZyXDHeTgXj%2F6n2xtdEbH%2Fc9VQpteC7cdmb0oVSE3pxJIV8f27i3kCQekOyneJfLf1Zh5LEcb8GPmQH%2BWvzsmkOSKtlBtLDp4iRpRxTbZcbwOj2qT6c72wyWBXJ8atEFypY56GyEl8DmSaK9v1WQY4CwE6K1%2BJL9ZjsvNX75MOrXq1Cy2A5cCKvsb4TPLaOp1S%2B5femnupfaE5396SWoKib0vbq4L52YDLJuYJ61CUvOmkZIDCvUILo#st_circuit-diagram_sec-nav-tabhttps://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html?dl=fm37Hrej2ueFHuPZi%2FFxLA%3D%3D%2CK1PkeEd5kdJI0liSHjkg%2F2%2FyXR3XxkyTHRRMXoxMUpvu7QC61iHrdbcjwYM5BVEYFhNbiqBlYVM%2FBNUQUFtDuM13e0gDgRL%2BBU3x%2F7hiAYLxTeIRfMBi7scEgOk0NgV3D17oXU8RUCZyXDHeTgXj%2F6n2xtdEbH%2Fc9VQpteC7cdmb0oVSE3pxJIV8f27i3kCQekOyneJfLf1Zh5LEcb8GPmQH%2BWvzsmkOSKtlBtLDp4iRpRxTbZcbwOj2qT6c72wyWBXJ8atEFypY56GyEl8DmSaK9v1WQY4CwE6K1%2BJL9ZjsvNX75MOrXq1Cy2A5cCKvsb4TPLaOp1S%2B5femnupfaE5396SWoKib0vbq4L52YDLJuYJ61CUvOmkZIDCvUILo#st_circuit-diagram_sec-nav-tab

STM32Cube MCU & MPU 封装

概述

        STM32Cube 是 STMicroelectronics 的一项原创计划,旨在通过减少开发工作量、时间和成本来显着提高开发人员的生产力。STM32Cube 涵盖了整个 STM32 产品组合。
STM32Cube 包括 STM32CubeMX,这是一个图形软件配置工具,允许使用图形向导生成 C 初始化代码。
        它还包含由 STM32Cube 硬件抽象层 (HAL) 和低层 (LL) API 组成的 STM32CubeF4 MCU 包,以及一组一致的中间件组件(RTOS、USB、FAT 文件系统、图形和 TCP/IP)。TouchGFX 图形软件堆栈也包含在 STM32CubeF4 MCU 包中,作为 STM32Cube 生态系统的一部分。它可免费用于 STM32 微控制器的生产和再分发。所有嵌入式软件实用程序都随附在 STMicroelectronics 板上运行的全套示例。
        STM32Cube HAL 是一个 STM32 嵌入式软件层,可确保在 STM32 产品组合中实现最大的可移植性,而 LL API 构成了一个快速、轻量级、面向专家的层,它比 HAL 更接近硬件。HAL 和 LL API 可以同时使用,但有一些限制。
HAL 和 LL API 均已投入生产,并且是根据 MISRA-C ® :2004 指南开发的,但有一些记录的例外情况(可按需提供报告)和 ISO/TS 16949。此外,ST 特定的验证过程增加了更深层次的级资格。
        STM32CubeF4 将在 STM32F4 微控制器上开发应用程序所需的所有通用嵌入式软件组件集中在一个包中。遵循 STM32Cube 倡议,这套组件具有高度的可移植性,不仅在 STM32F4 系列中,而且在其他 STM32 系列中也是如此。此外,低层 API 以便携性和简单性为代价,为 STM32CubeF4 HAL 提供了一种替代的、高性能、低占用空间的解决方案。
为方便用户,HAL 和 LL API 以开源 BSD 许可证提供。

功能

  • 一致且完整的嵌入式软件产品,使用户摆脱依赖问题
  • STM32Cube 支持的所有 STM32 系列之间的最大可移植性
  • 数百个示例,便于理解
  • 使用 CodeSonar ®静态分析工具的高质量 HAL 和低层 API 驱动程序
  • TouchGFX 图形软件堆栈
  • STM32F4 专用中间件,包括 USB 主机和设备,以及 TCP/IP
  • 免费用户友好的许可条款
  • 用户可以启用的更新机制,以便收到新版本的通知

软件获取

STM32CubeF4 - STM32Cube MCU Package for STM32F4 series (HAL, Low-Layer APIs and CMSIS, USB, TCP/IP, File system, RTOS, Graphic - and examples running on ST boards) - STMicroelectronics STM32CubeF4 - STM32Cube MCU Package for STM32F4 series (HAL, Low-Layer APIs and CMSIS, USB, TCP/IP, File system, RTOS, Graphic - and examples running on ST boards), STM32CubeF4, Patch-CubeF4, STMicroelectronicshttps://www.st.com/en/embedded-software/stm32cubef4.html

CubeF4 MCU包的结构

有关1、STM32CubeMX和STM32Cube库(HAL)详细介绍的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  3. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  4. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  5. STM32的HAL和LL库区别和性能对比 - 2

    LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L

  6. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  7. 华为ensp详细安装包、安装教程及所遇问题 - 2

    目录一、安装包链接二、安装详细步骤1.安装Wireshark和WinPcap2.安装OracleVMVirtualBox3.安装ensp三、安装后注册四、启动路由器出现40错误怎么解决一、安装包链接二、安装详细步骤链接:https://pan.baidu.com/s/1QbUUYMOMIV2oeIKHWP1SpA?pwd=xftx提取码:xftx1.安装Wireshark和WinPcap找到Wireshark安装包所在文件夹,双击它,按照以下步骤安装。2.安装OracleVMVirtualBox找到OracleVMVirtualBox安装包所在文件夹,双击它,按照以下步骤安装。注:可自定义安装

  8. ESP32学习入门:WiFi连接网络 - 2

    目录一、ESP32简单介绍二、ESP32Wi-Fi模块介绍三、ESP32Wi-Fi编程模型四、ESP32Wi-Fi事件处理流程 五、ESP32Wi-Fi开发环境六、ESP32Wi-Fi具体代码七、ESP32Wi-Fi代码解读6.1主程序app_main7.2自定义代码wifi_init_sta()八、ESP32Wi-Fi连接验证8.1测试方法8.2服务器模拟工具sscom58.3测试代码8.4测试结果前言为了开发一款亚马逊物联网产品,开始入手ESP32模块。为了能够记录自己的学习过程,特记录如下操作过程。一、ESP32简单介绍ESP32是一套Wi-Fi(2.4GHz)和蓝牙(4.2)双模解决方

  9. Linux操作系统CentOS7安装Nginx[详细版] - 2

    Nginx安装1.官网下载Nginx2.使用XShell和Xftp将压缩包上传到Linux虚拟机中3.解压文件nginx-1.20.2.tar.gz4.配置nginx5.启动nginx6.拓展(修改端口和常用命令)(一)修改nginx端口(二)常用命令1.官网下载Nginxhttp://nginx.org/en/download.html这里我下载的是1.20.2版本,大家按需下载对应稳定版即可2.使用XShell和Xftp将压缩包上传到Linux虚拟机中没有XShell可以参考《Linux操作系统CentOS7连接XShell》3.解压文件nginx-1.20.2.tar.gz1)检查是否存

  10. Spring Security 6.0系列【32】授权服务器篇之默认过滤器 - 2

    有道无术,术尚可求,有术无道,止于术。本系列SpringBoot版本3.0.4本系列SpringSecurity版本6.0.2本系列SpringAuthorizationServer版本1.0.2源码地址:https://gitee.com/pearl-organization/study-spring-security-demo文章目录前言1.OAuth2AuthorizationServerMetadataEndpointFilter2.OAuth2AuthorizationEndpointFilter3.OidcProviderConfigurationEndpointFilter4.N

随机推荐