
引言. y# ~" o5 T# V) n- M5 M8 D3 G% l STM32CubeMX是用于STM32微控制器的图形工具。它属于STM32Cube计划(参见第 1节),既可作为独立应用,也可在STM32CubeIDE工具链中使用。6 W* g+ D& ~) i# x7 B STM32CubeMX有以下主要特性: j) e! D7 y9 A6 y/ z • 微控制器选择方便,覆盖整个STM32产品$ L; L' _1 @6 t6 R • 可从一系列意法半导体的开发板中选择板子$ F1 z* [9 C$ u$ T* V5 J+ e • 微控制器配置简单(引脚、时钟树、外设、中间件)以及生成对应的初始化C代码9 x0 h5 j6 w! F( H • 将以前保存的配置导入新的MCU项目即可轻松地转换到其他微控制器% q8 _/ F- f ]+ y • 将当前配置轻松地导出到兼容的MCU • 生成配置报告 • 为一系列集成开发环境工具链生成嵌入C项目 STM32CubeMX项目包括生成的初始化C代码、兼容MISRA 2004的HAL驱动程序、用户配置所需的中间件协议栈,以及在选择的IDE中打开和建立项目的所有相关文件。 • 用户定义应用序列的功耗计算( J/ p5 L s, m! r# h: I • 自动更新功能确保用户随时更新STM32CubeMX • 下载和更新用户应用开发所需的STM32Cube嵌入式软件(关于STM32Cube嵌入式软件产品的详情,参见附录E) 虽然STM32CubeMX提供了一个用户界面并且生成的C代码兼容STM32 MCU设计和固件解决方案,但用户仍需要参考产品技术文档,以了解关于微控制器外设和固件实际实现的详情。 2 T/ s# l2 A# }! `- x • STM32微控制器参考手册和数据手册 • STM32F0(UM1785)、STM32F1(UM1850)、STM32F2(UM1940)、 STM32F3(UM1786)、STM32F4(UM1725)、STM32F7(UM1905)、 STM32G0(UM2303)、STM32G4(UM2570)、STM32H7(UM2217)、 STM32L0(UM1749)、STM32L1(UM1816)、STM32L4/L4+(UM1884)、 STM32L5(UM2659)、STM32MP1(https://wiki.st.com/stm32mpu)和STM32WB(UM2442)的STM32Cube HAL/LL驱动程序用户手册。* E. L0 ]' D* G( ~7 ]/ {" z 1 STM32Cube 概述6 ^! l% U$ s1 e* c" W& V a STMCube 源自意法半导体,旨在通过减少开发工作量、时间和成本,让开发人员的生活更轻松。 STM32Cube 基于 Arm®(a) Cortex® 内核,涵盖 STM32 微控制器整个产品系列。6 i. M8 I& K# U4 ~ + a& z: O: h7 A" P5 e# \ STM32Cube 包括: • 图形软件配置工具STM32CubeMX,可通过图形向导生成初始化C代码。 • 综合的嵌入式软件平台,并针对每个系列提供单独的库文件(例如STM32CubeF2用于STM32F2系列,STM32CubeF4用于STM32F4系列) – STM32抽象层嵌入式软件STM32Cube HAL,确保在STM32各个产品之间实现最大 限度的可移植性 – 底层API(LL)提供了一个专家级的快速轻量级层,它比HAL更靠近硬件。 – 一套一致的中间件,比如RTOS、USB、TCP/IP – 提供了一套完整示例以及嵌入式软件工具。 + u8 P& {: J4 `# w8 | ] 2 STM32CubeMX入门2 q; b* D. P' R" L9 N: i0 r 2.1 原理4 m" K p( u/ K 客户需要快速识别最符合其要求的MCU(核心架构、特性、存储器容量、性能......)。开发板设计人员主要关注的是如何针对板布局优化微控制器引脚配置并满足应用要求(选择外设工作模式);嵌入式系统开发人员更感兴趣的是为特定目标设备开发新应用,以及将现有设计迁移至不同的微控制器。. Y! U. N1 T3 Z( t: y 迁移到新平台并将C代码更新到新固件驱动程序需要耗费时间,这可能会导致项目出现不必要的延迟。STM32CubeMX 基于STM32Cube计划而开发,旨在满足客户关键要求,从而最大限度地重复使用软件并缩短创建目标系统的时间:) h# }% ^1 W4 x6 \* x; s • STM32Cube固件解决方案提出了跨STM32产品的通用硬件抽象层API,可实现软件重复使用和应用程序设计的可移植性。 • 凭借STM32CubeMX内置的STM32微控制器、外设和中间件(LwIP和USB通信协议栈,用于小型嵌入式系统的FatFs文件系统,FreeRTOS)知识,迁移时间得到了优化。 STM32CubeMX 图形界面执行以下功能: • 快速简便地配置所选外设和中间件的MCU引脚、时钟树和工作模式) u# R* U( G* |6 i, J: ^' h6 p • 为开发板设计人员生成引脚配置报告8 O# _8 z' n( M' w • 生成一个完整项目,包含所有必需的库和初始化C代码,以在用户定义的工作模式下设置设备。可以在选定的应用开发环境中直接打开项目(适用于一系列支持的IDE),以继续进行应用程序开发(参见图 1)。) l. v6 z9 a' c0 j% }3 m 在配置过程中,STM32CubeMX检测冲突和无效设置,并使用有意义的图标和有用的工具提示突出显示这些冲突和设置。; }) O0 e& P) {% k0 H3 | ![]() ! J+ Z4 P% f, _$ h, U8 X( j' S 2.2 主要特性4 b/ A& I _. A" F STM32CubeMX 具备以下特性: • 项目管理" {$ J' `8 \8 q. W6 t STM32CubeMX 允许用户创建、保存和加载先前保存的项目: – 当启动STM32CubeMX时,用户可以选择创建新项目或加载先前保存的项目。 – 项目保存操作可将项目内执行的用户设置和配置保存在.ioc文件中,在STM32CubeMX下次加载项目时便可使用该文件。 STM32CubeMX 允许用于在新项目中导入先前保存的项目。 STM32CubeMX 项目具有两个配置选项: – 仅MCU配置:.ioc文件保存在专用项目文件夹中。 – 具有C代码生成的MCU配置:此时,.ioc文件与生成的源C代码一起保存在专用项目文件夹中。每个项目只能有一个.ioc文件。% k9 g' Q" x q, @8 [* L0 P4 B • 轻松选择MCU和STMicroelectronics板$ O$ C0 [: I, ~ u$ Y 在开始新项目时,会打开一个专用窗口,用户可从STM32产品中选择微控制器或STMicroelectronics板。提供不同的筛选选项,以简化MCU和开发板选择。通过与竞争对手产品系列进行特性比较,还可以通过“交叉选择器”选项卡选择MCU。比较标准可以调整。 • 轻松执行引脚排列配置 r4 I6 I4 v: _& k* X – 在“引脚排列”视图中,用户可以从列表中选择外设,并配置应用程序所需的外设模式。STM32CubeMX 相应地对引脚进行分配和配置。8 {3 O( U; @+ B2 r – 对高级用户而言,还可以使用“引脚布局”视图,直接将外设功能映射到物理引脚。信号可以锁定在引脚上,以防止STM32CubeMX冲突解算器将信号移动到另一个引脚。5 B" F& ^* P9 a/ X – 引脚排列配置可以导出为.csv文件。, P; [& A: f; e; J0 ^* Q • 完整的项目生成 项目生成包括一组IDE的引脚排列、固件和中间件初始化C代码。它基于STM32Cube嵌入式软件库。可以执行以下操作:: g0 \$ N' ~; P& B – 用户可以从先前定义的引脚排列开始,继续配置中间件、时钟树、服务(RNG、CRC等)和外设参数。STM32CubeMX 生成相应的初始化C代码。由此,用户可获得一个项目目录,包括生成的main.c文件和用于配置和初始化的C头文件、必要的0 E8 C& a4 [ E8 V0 S( h, ^! z6 N HAL和中间件库的副本,以及用于所选IDE的特定文件。 – 用户可以在用户专用扇区中添加用户定义的C代码,从而修改生成的源文件。STM32CubeMX 确保在下一次C代码生成时保留 用户C代码(如果用户C代码不再与当前配置相关,则对其添加注释)。. f( N X5 @8 _ – STM32CubeMX 可以使用用户定义的freemarker .ftl模板文件生成用户文件。% J5 y r. W9 ?) x y; Q, G8 ?* M – 在 “ 项目设置 ” 菜单中,用户可以选择必须为哪些开发工具链 (IDE)生成 C 代码。 STM32CubeMX 确保将 IDE 相关的项目文件添加到项目文件夹中,以便可以将项目作为第三方 IDE 中的新项目(IAR™ EWARM、Keil™ MDK-ARM、Atollic®TrueSTUDIO® 和用于 STM32 的系统工作台)直接导入。 • 功耗计算1 w: s; X& x. ]8 z 用户可以首先选择微控制器产品编号和电池类型,进而定义表示应用生命周期和参数的 一系列步骤(频率选择、使能的外设、步长持续时间)。STM32CubeMX 功耗计算器返回相应的功耗和电池寿命估算值。 • 时钟树配置 STM32CubeMX 提供了时钟树的图示,可以参阅设备参考手册。用户可以更改默认设置(时钟源、预分频器和频率值)。然后相应地更新时钟树。使用工具提示突出显示无效的设置和限制。使用求解器功能可以解决时钟树配置冲突。当无法找到给定用户配置的完全匹配时,STM32CubeMX提出最接近的解。! T. e+ M+ ^6 A • 自动更新STM32CubeMX和STM32Cube MCU软件包 STM32CubeMX 附带更新程序机制,可配置为自动或按需检查更新。它支持STM32CubeMX自动更新以及STM32Cube固件库软件包的更新。更新程序机制还允许删除先前安装的软件包。, H" V$ _) P/ H3 c w. u7 ^ • 报告生成9 s* f/ K& ]) r6 F2 H- t' w. n: M 可以生成.pdf和.csv报告,用于记录用户配置工作。8 j3 }; k+ z# z! F6 k • 图形仿真器 对于具有图形功能的微控制器,STM32CubeMX允许用户模拟图形配置并调整图形参数以优化性能。一旦结果符合要求,就可以相应地调整当前项目配置。 • 支持CMSIS-Pack格式的嵌入式软件包- n4 R7 A7 D+ \ STM32CubeMX可以获取和下载以CMSIS-Pack格式提供的嵌入式软件包的更新。然后可以将属于这些新版本的所选软件组件添加到当前项目中。 • 上下文帮助 E1 z1 ^5 k( g3 u& Y! I+ e/ e k 将鼠标悬停在“内核”、“系列”、“外设”和“中间件”上,可以显示上下文帮助窗口。它们提供了简短介绍,以及与所选项目相对应的相关文档的链接。 & ^' a9 m+ p8 `+ v 2.3 规则和限制 • C代码生成仅涵盖外设和中间件初始化。它基于STM32Cube HAL固件库。 • STM32CubeMX C代码生成仅涵盖用于外设和中间件组件的初始化代码,这些外设和中间件使用STM32Cube嵌入式软件包中包含的驱动程序。尚不支持某些外设和中间件组件的代码生成。 • 有关引脚分配规则的说明,请参见附录A。 • 有关STM32CubeMX C代码生成的设计选择和限制的说明,请参见附录B。 7 s/ U" E/ A3 v i& P( }* A 完整版请查看:附件 2 i7 I# ]: J7 V& f. a * k5 C) E" f; U0 V4 r( G |
STM32CubeMX用于STM32配置和初始化C代码生成.pdf
下载21.77 MB, 下载次数: 58
[md]学** 谢谢分享" p; E/ |; ^. a' D; D; a3 C% @ H. W |
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯
拷打cubemx【002】——自定义还需基于芯片的工程
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
【实测教程】STM32CubeMX-STM32L4之研究(ADC)
【下载问题解决】关于ST官网下载软件问题解决
兔哥的初代M33【002】-H503Nucleo 内部flash操作
TouchGFX应用移植自定义屏幕
拷打cubemx【001】——艰难的选型路
兔哥的杂谈【002】——如何性价比更高地去编译STM32