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

2023-05-16

目录

前言

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包的结构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Java char[]数组转成String类型(char to String)详细介绍

    前言 string toCharArray 方法将给定的字符串转换为字符序列 Java中字符串转换为字符数组的方法在之前的博客已经介绍了 xff01 今天介绍char 数组转成String 方法有4种 xff1a 使用 String 类的
  • STM32 HAL UART 使用关键思路(无代码,但是很关键)

    1 到底使用哪种方式 xff0c 或者说有哪几种方式 xff1f STM32 中的 UART 允许使用不同的发送 TX 和接收 RX 模式进行配置 xff0c 有什么区别和优势 xff1f xff1a 轮询模式 xff08 简单来说就是无
  • 基于HAL库的STM32串口中断接收16进制数据

    最近 xff0c 要弄Lora组网 xff0c 采集温湿度通过网关和ESP8266数据上传服务器 xff0c Lora的库采用hal编写 xff0c 因此要改用Hal库编写程序 ESP8266的串口中断是基于标准库编写的 xff0c 因此
  • STM32 HAL 串口收发(无DMA,中断接收)

    STM32CUBE配置 一 使用printf发送数据 xff0c 在usart c中添加代码串口重定向 USER CODE BEGIN 0 include lt stdio h gt ifdef GNUC define PUTCHAR PR
  • 【STM32】HAL库-SPI

    3线全双工同步传输 带或不带第三根双向数据线的双线单工同步传输 8或16位传输帧格式选择 主或从操作 支持多主模式 8个主模式波特率预分频系数 最大为fPCLK 2 从模式频率 最大为fPCLK 2 主模式和从模式的快速通信 主模式和从模式
  • stm32 USB CDC 不接电脑无程序一直在USB中断问题

    前些时间基于STM32CUBE 工具做了个用STM32F103的USB 接口 枚举成CDC的项目 接上电脑程序功能正常 但是在不接电脑时 程序一直在USB中断中 下在给大家分享一下我的解决方法 首先是在 stm32f1xx hal pcd
  • STM32 基础系列教程 38 - Lwip_http

    前言 HTTP协议 HyperText Transfer Protocol 超文本传输协议 是因特网上应用最为广泛的种网络传输协议 所有的WWW文件都必须遵守这个标准 HTTP是一个基于TCP IP通信协议来传递数据 HTML 文件 图片文
  • STM32 基础系列教程 23 - USB_cdc

    前言 学习stm32 USB接口使用 学会用CUBE工具快速创建USB设备工程及调试 关于usb的相关知道请读者提前准备并学习 当然如果不想深究其中原理的话 跟着本文来操作就可以实现基于USB的设备开发了 需要提示的是 stm32在使用us
  • 使用HAL库开发STM32:系统时间基础及进阶使用

    文章目录 目的 基础使用 进阶使用 总结 目的 HAL库默认提供了系统时间 系统时间默认情况下由SysTick定时器计数产生 系统时间一方面用于HAL库自身调用 另一方面用户也可以使用 为开发带来便利 本文提到的相关使用主要应用于未使用OS
  • stm32Cubemx:串口的空闲中断和接收中断------stm32f407zgt6

    介绍串口的接收中断与空闲中断 这两种中断都是在串口进行接收时可能会发生的中断 串口接收中断即每当串口完成一次接收之后触发一次中断 在 STM32 中相应的中断处理函数为 USARTx IRQHandler 中断回调函数为 HAL UART
  • STM32CUBEMX F103 HAL库开发 两路定时器的Encoder编码器模式

    机器人开发过程中 对于直流电机来说 编码器至关重要 它不仅可以使我们对电极进行精确的速度闭环 位置闭环 还可以通过时间积分 根据运动学关系 获得速度 位置等信息 STM32的定时器有编码器模式 大大的方便我们的开发 使用STM32cubeM
  • STM32 基础系列教程 31 – DAC

    前言 学习stm32 DAC数模转换接口使用 学会用STM32 的DAC接口 通过DAC接口将数字信号转变成模拟信号输出 或查看内部变量值的变化波形 学习DAC波形发生器的使用 示例详解 基于硬件平台 NUCLEO F302R8 NUCLE
  • stm32f407 usb cdc设备无法启动问题

    最新要做一个项目 要求基于STM32F407实现USB CDC设备 首先想到的就是直接用STM32CUBEMX工具来生成 OK 话不多说 直接上过程 RCC配置 Sys配置 USB OTG FS配置 USB DEVICE配置 时钟配置 然后
  • STM32Cube学习(2)——定时器中断

    0 引言 单片机 STM32F407ZGT6 仿真器 ST Link V2 开发环境 STM32CubeIDE 1 10 1 功能说明 采用定时器中断的方式 实现LED按照定时器频率闪烁 前情提要 STM32Cube学习 1 点灯 配置 参
  • STM32 基础系列教程 44 - FSMC_LCD

    前言 TFT LCD 即薄膜晶体管液晶显示器 其英文全称为 Thin Film Transistor Liquid Crystal Display TFT LCD 与无源 TN LCD STN LCD 的简单矩阵不同 它在液晶显示屏的每一个
  • HAL库学习笔记-11 I2C

    目录 前言 一 I2C协议简介 I2C物理层 I2C协议层 1 基本读写过程 2 通讯的起始和停止信号 3 数据有效性 4 地址及数据方向 5 应答信号 二 STM32的I2C特性及架构 STM32 I2C架构解析 1 逻辑引脚 2 时钟控
  • STM32CubeMX配置GPIO外部中断

    前言 用PA0来检测按键的输入信号 当按键按下时会由低电平变为高电平 1 配置RCC时钟 将RCC的High Speed Clock HSE 配置为Crystal Ceramic Resonator 将主频设置为72MHz 2 配置GPIO
  • STM32HAL----USB模拟串口(VCP)

    想要实现的功能是 USB模拟串口收发数据 串口助手发送数据至MCU MCU接收后返回给串口助手 当初是想用标准库做这个功能的 但是因为后来了解到STM32CubeMX这个软件 在尝试之后实在是感觉 太方便了 所以 并没有使用标准库 而是直接
  • 使用STM32CubeMX生成源码工程后,使用ST-LINK下载出现问题的解决方法

    第一次使用STM32CubeMX生成源码工程文件 各种时钟引脚资源配置好后 点击生成了Keil的工程 编译通过 连接ST LINK下载程序 第一次下载 一切正常 然后修改了一下程序 再次下载 出现找不到设备的提示 以为板子出了问题 又拿过来
  • STM32CubeMX学习六 之ADC配置

    文章目录 前言 一 本地环境 二 开始 1 定时器配置 2 引脚配置 在这里插入图片描述 https img blog csdnimg cn e5b6f155a1b8468cb15046a0a9d031cd png 3 内部时钟配置 4 A

随机推荐

  • 快速看懂(找到)VUE框架的管理系统代码

    前言 刚入职的且没有啥基础的小白一枚 xff0c 培训期间要求一周时间内在现有demo系统上新增一个模块 xff0c 实现简单的增删改查 so xff0c 这是一个速成的帖子 xff0c 提供一个大致思路 xff08 看代码 xff0b 修
  • 解决k8s.gcr.io问题

    kubeadm安装新版本的Kubernetes过程中 xff0c 需要从k8s grc io仓库中拉取所需镜像文件 xff0c 但由于G F W导致无法正常拉取 xff0c 本文将介绍如何绕过此问题 xff0c 来完成业务的部署 ERROR
  • C++很难吗?到底有多难?

    C 43 43 他爹Bjarne Stroustrup都曾开玩笑说自己已经搞不懂C 43 43 了 xff0c 他也曾多次表达过C 43 43 似乎已经有点太庞大了 其实也不是说C 43 43 语法多么复杂 xff0c 而是C 43 43
  • C++开发需要掌握哪些技能?

    一 语言基础 无论C 43 43 开发还是Java开发 xff0c 对于码农来说 xff0c 最重要的是熟悉编程语言 同理 xff0c 无论从事何种工作 xff0c 首当其冲的就是要掌握好语言基础 C 43 43 是一种博大精深的编程语言
  • 如何成为一个优秀的C++开发工程师?

    目前主流的后端开发语言有很多 xff0c 而C 43 43 开发语言 xff0c 就是其中的一种 xff0c 并且有很多人想要成为C 43 43 开发工程师 那么如何才能成为一名优秀的C 43 43 开发工程师 xff1f 掌握游戏开发之物
  • 深入了解C语言和C++哪个更难?

    众所周知C语言与C 43 43 都是主流的开发语言 xff0c 并且在大多数人看来C语言的学习难度要更难 xff0c 那事实是怎么样的呢 xff1f 接下来小编带你深入了解下C语言和C 43 43 哪个更难 xff1a 深入了解C语言和C
  • ffmpeg分析 之 如何解析mpegts流

    转 xff1a http blog chinaunix net uid 20364597 id 3530284 html ffmpeg分析 之 如何解析mpegts流 2013 03 19 11 02 40 分类 xff1a LINUX 数
  • 使用input上传图片并本地预览

    话不多说上代码 span class token operator lt span div id span class token operator 61 span span class token string 34 app 34 spa
  • 1、【STM32】学习初探(方法及准备)

    前言 由于个人原因已经有好长时间没搞了 xff0c 最近工作需要 xff0c 但是拿起32基本上都忘记差不多了 xff0c 接下来一段时间将急中学习一下STM32的基础知识 以前是学习的库函数版本 xff0c 有一定的基础 xff0c 因此
  • Pixhawk入门指南-目录

    文章转载自 xff1a http www ncnynl com archives 201701 1271 html APM PX4 Pixhawk入门指南 目录 介绍 xff1a APM xff08 ArduPilotMega xff09
  • 初学PX4之环境搭建

    文章转自 xff1a http www jianshu com p 36dac548106b 前言 前段时间linux崩溃了 xff0c 桌面进去后只有背景 xff0c 折腾好久没搞定 xff0c 为了节省时间索性重装了系统 xff0c 同
  • C++构造函数后面的冒号

    构造函数后加冒号是初始化表达式 xff1a 有四种情况下应该使用初始化表达式来初始化成员 xff1a 1 xff1a 初始化const成员 2 xff1a 初始化引用成员 3 xff1a 当调用基类的构造函数 xff0c 而它拥有一组参数时
  • 01python画的玫瑰

    刚开始学习python xff0c 还处于菜鸟阶段 xff0c 这段时间学习了turtle库 xff0c 纯手工画了一朵玫瑰 xff0c 拿出来与大家分享 xff01 源码地址 xff1a https github com YinZhong
  • 02turtle模块常用函数

    turtle模块函数
  • 04主存储器、BIOS和CMOS存储器

    主存储器 BIOS和CMOS存储器 一 PC AT机内存使用图 二 ROM BIOS 存放在ROM中的系统BIOS程序主要用于计算机开机时执行系统各部分的自检 xff0c 建立系统需要使用的各种配置表 xff0c 例如中断向量表 硬盘参数表
  • 06异常处理

    python的异常处理 python使用try except xff0c 可使程序不因为运行错误而崩溃 结构如下 xff1a try span class hljs tag lt span class hljs title body spa
  • 07turtle库的进阶使用

    turtle库的进阶使用 turtle库以屏幕中心为绘制原点利用代码绘制一棵树 span class hljs keyword import span turtle span class hljs string 34 34 34 plist
  • 结束,也是开始

    结束 xff0c 也是开始 序言 看到CSDN征文要求 xff0c 感觉非常适合自己 四年前的自己正在参加高考 xff0c 转眼四年过去了 xff0c 自己也即将步入社会 xff0c 四年的大学生活感慨颇多 xff0c 谨以此文作为自己的阶
  • 01策略模式

    策略模式 最近在看 Head First设计模式 这本书 xff0c 最大的感触就是 xff0c 原来写代码也是有 套路 的 xff0c 刚学了策略模式 xff0c 用C 43 43 实现了一下 xff0c 做个笔记 xff0c 备忘 xf
  • 1、STM32CubeMX和STM32Cube库(HAL)详细介绍

    目录 前言 STM32Cube生态 STM32Cube 是什么 xff1f STM32Cube 软件工具套件 STM32Cube Embedded 软件 STM32CubeMX 编辑 前言 也许大家在学习正点原子或者其他32视频和代码的时候