目录
前言
也许大家在学习正点原子或者其他32视频和代码的时候都听过HAL库,是的这是ST官方最新的函数库,而以前的标准库已不再更新与发展。而跟随而来的就是STM32CubeMX图形化编程方式的兴起,图形化编程方式除了编程简单,图形化编程配置好后能够转换成响应的代码,极大的方便了开发者的开发,而且其具有很好的移植性,图形化编程方式已经成为了单片机开发的主流。对于国内的一些教程对其介绍的比较少,因此本人来到了ST管网查看,也建议想了解的去ST官网看。当然也可以看本博客的介绍。
本人接下将整理ST官方上关于STM32CubeMX图形化编程软件和STM32Cube库里面的介绍。
ST官方开发者社区:
STM32Cube生态
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 环境上运行的独立软件的可用性
软件获取
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
- 免费用户友好的许可条款
- 用户可以启用的更新机制,以便收到新版本的通知