打印
[应用相关]

用于STM32配置的STM32CubeMX和初始化C代码生成

[复制链接]
2025|105
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用于STM32配置的STM32CubeMX和初始化C代码生成

介绍
STM32CubeMX是STM32微控制器的图形化工具。它是
STM32立方™ 主动性(见第1节),可作为独立应用程序使用
或者作为集成开发环境(ide)中集成的Eclipse插件。
STM32CubeMX具有以下主要功能:
•可轻松选择涵盖整个STM32产品组合的微控制器
•从STMicroelectronics电路板列表中选择电路板
•易于微控制器配置(引脚、时钟树、外围设备、中间件)和
生成相应的初始化C代码
•通过导入先前保存的
新MCU项目的配置
•将当前配置轻松导出到兼容的MCU
•生成配置报告
•生成嵌入式C项目以选择集成开发
环境工具链。STM32CubeMX项目包括生成的初始化C
代码,MISRA 2004兼容的STM32 HAL驱动程序,用于
用户配置,以及在中打开和生成项目的所有相关文件
选定的IDE。
•用户定义的应用程序序列的功耗计算
•自我更新,允许用户保持STM32CubeMX最新
•下载和更新用户应用所需的STM32Cube嵌入式软件
开发(有关STM32Cube嵌入式软件的详细信息,请参见附录E)
尽管STM32CubeMX提供了一个用户界面并生成了与
STM32单片机的设计和固件解决方案,用户需要参考产品技术
有关微控制器外围设备和
固件。
以下文件可从www.st.com网站:
•STM32微控制器参考手册和数据表
•用于STM32F0(UM1785)、STM32F1的STM32Cube HAL/LL驱动程序用户手册
(UM1850)、STM32F2(UM1940)、STM32F3(UM1786)、STM32F4(UM1725)、STM32F7
(UM1905)、STM32L0(UM1749)、STM32L1(UM1816)、STM32L4/L4+(UM1884),
STM32H7(UM2217),STM32MP1和STM32WB(UM2442)

使用特权

评论回复
沙发
烟雨蒙蒙520|  楼主 | 2020-7-26 16:31 | 只看该作者
1 STM32Cube概述
STM32立方™ 是STMicroelectronics的一项原创计划,旨在让开发者的生活更轻松
通过减少开发工作量、时间和成本。STM32立方™涵盖整个投资组合
STM32微控制器,基于32位Arm®(a)Cortex®内核。
STM32立方™ 包括:
•STM32CubeMX,一个图形化软件配置工具,允许生成C
使用图形向导初始化代码。
•一个全面的嵌入式软件平台,按系列交付(如
STM32CubeF2用于STM32F2系列,STM32CubeF4用于STM32F4系列)
–STM32Cube™ HAL,STM32抽象层嵌入式软件保证
最大限度地提高了STM32产品组合的可移植性
–低层API(LL)提供了一个面向专家的快速轻量级层
比HAL更接近硬件。所有API仅适用于
外围设备。
–一组一致的中间件组件,如RTOS、USB、TCP/IP,
绘图
–所有嵌入式软件实用程序,附带全套示例。

使用特权

评论回复
板凳
烟雨蒙蒙520|  楼主 | 2020-7-26 16:33 | 只看该作者
2开始使用STM32CubeMX
2.1原则
客户需要快速确定最符合他们要求的MCU(核心
架构、功能、内存大小、性能。而板卡设计者主要关心的是
是为了优化微控制器的引脚配置,以实现其电路板布局和
应用需求(外围设备操作模式的选择),嵌入式系统
开发人员更感兴趣的是为特定的目标设备开发新的应用程序,
将现有的设计移植到不同的微控制器上。
迁移到新平台并将C代码更新到新固件驱动程序所花的时间
给项目增加不必要的延迟。STM32CubeMX是在STM32Cube中开发的
其目的是满足客户的关键需求,最大限度地实现软件重用
并尽可能减少创建目标系统的时间:
•通过STM32Cube实现软件重用和应用程序设计可移植性
固件解决方案提出跨STM32的通用硬件抽象层API
文件夹。
•由于STM32CubeMX内置的
STM32微控制器、外围设备和中间件(LwIP和USB通信
协议栈,小型嵌入式系统的FatFs文件系统,FreeRTOS)。
STM32CubeMX图形界面执行以下功能:
•MCU引脚、时钟树和
选定的外围设备和中间件
•为电路板设计师生成引脚配置报告
•生成包含所有必要库和初始化C的完整项目
在用户定义的操作模式下设置设备的代码。项目可以是
在选定的应用程序开发环境中直接打开(用于选择
支持的IDE),以继续进行应用程序开发(参见图1)。
在配置过程中,STM32CubeMX会检测到冲突和无效设置,并且
通过有意义的图标和有用的工具提示突出显示它们。

使用特权

评论回复
地板
烟雨蒙蒙520|  楼主 | 2020-7-26 16:35 | 只看该作者

使用特权

评论回复
5
烟雨蒙蒙520|  楼主 | 2020-7-26 16:36 | 只看该作者
2.2主要特点
STM32CubeMX具有以下特性:
•项目管理
STM32CubeMX允许创建、保存和加载以前保存的项目:
–启动STM32CubeMX时,用户可以选择创建新项目或
加载以前保存的项目。
–保存项目可保存在中执行的用户设置和配置
.ioc文件中的项目,下次加载项目时将使用该文件
STM32CubeMX公司。
STM32CubeMX还允许在新项目中导入以前保存的项目。
STM32CubeMX项目有两种风格:
–仅限MCU配置:.ioc文件保存在专用项目文件夹中。
–MCU配置和C代码生成:在本例中.ioc文件保存在
专用的项目文件夹以及生成的源代码。可能有
每个项目只有一个.ioc文件。
•MCU和STMicroelectronics板选择简单
启动新项目时,将打开一个专用窗口来选择
微控制器或STM32产品组合的STM微电子板。不同的过滤
选项可用于简化MCU和电路板的选择。
•易于插脚配置
–从Pinout视图,用户可以从列表中选择外围设备并进行配置
应用程序所需的外围模式。STM32CubeMX分配和
相应地配置管脚。
–对于更高级的用户,还可以直接映射外围功能
使用Pinout视图连接到物理管脚。信号可以锁定在
防止STM32CubeMX冲突解决程序将信号移动到另一个管脚。
–引脚输出配置可以导出为.csv文件。
•完成项目生成
项目生成包括pinout、固件和中间件初始化C代码
对于一组IDE。它基于STM32Cube嵌入式软件库。这个
可以执行以下操作:
–从先前定义的pinout开始,用户可以继续
配置中间件、时钟树、服务(RNG、CRC等)和
外围参数。STM32CubeMX生成相应的初始化
C代码。结果是一个包含生成的main.c文件和c的项目目录
用于配置和初始化的头文件,以及必要的HAL的副本
和中间件库以及所选IDE的特定文件。
–用户可以通过在中添加用户定义的C代码来修改生成的源文件
用户专用部分。STM32CubeMX确保用户C代码
在下一个C代码生成时保留(如果用户C代码不是
与当前配置相关)。
–STM32CubeMX可以使用用户定义的freemarker.ftl生成用户文件
模板文件。
–从项目设置菜单,用户可以选择开发工具链
(IDE)必须为其生成C代码。STM32CubeMX确保
IDE相关的项目文件将添加到项目文件夹中,以便项目可以

使用特权

评论回复
6
烟雨蒙蒙520|  楼主 | 2020-7-26 16:36 | 只看该作者
在第三方IDE(IAR)中作为新项目直接导入™ 埃沃姆,凯尔™
MDK-ARM、Atolonic®TrueSTUDIO®和用于STM32的AC6 System Workbench)。
•功耗计算
从选择微控制器部件号和电池类型开始,用户
可以定义表示应用程序生命周期和参数的一系列步骤
(频率选择、启用的外围设备、步长持续时间)。STM32CubeMX电源
消耗计算器返回相应的功耗和电池寿命
估计。
•时钟树配置
STM32CubeMX提供了时钟树的图形表示,如中所示
设备参考手册。用户可以更改默认设置(时钟源,
预分频器和频率值)。然后时钟树会相应地更新。无效
设置和限制被突出显示并用工具提示记录。时钟树
配置冲突可以通过使用解算器功能来解决。如果没有完全匹配
对于给定的用户配置,STM32CubeMX提出最接近的解决方案。
•自动更新STM32CubeMX和STM32Cube MCU包
STM32CubeMX附带一个更新程序机制,可以为
自动或按需检查更新。支持STM32CubeMX自更新
以及STM32Cube固件库软件包更新。更新程序机制
还允许删除以前安装的软件包。
•报告生成
可以生成.pdf和.csv报告来记录用户配置工作。
请使用以下新功能更新第3.2节:
•图形模拟器
对于支持图形的微控制器,STM32CubeMX允许模拟图形
配置和调整图形参数以优化性能。一次
结果令人满意,目前项目配置可以调整
因此。
•支持CMSIS包格式的嵌入式软件包
STM32CubeMX允许获取和下载嵌入式软件的更新
以CMSIS包格式交付的包。所选软件组件属于
然后可以将这些新版本添加到当前项目中。
•上下文帮助
将鼠标悬停在Cores、Series和,
外围设备和中间件。它们提供了一个简短的描述和相关的链接
与所选项目对应的文档。
2.3规则和限制
•C代码生成仅涵盖外围设备和中间件初始化。它基于
STM32Cube HAL固件库。
•STM32CubeMX C代码生成仅涵盖外围设备和
使用STM32Cube embedded中包含的驱动程序的中间件组件软件包。一些外围设备和中间件的代码生成
组件尚不受支持。
•有关管脚分配规则的说明,请参阅附录A。
•有关STM32CubeMX C代码生成设计的说明,请参阅附录B
选择和限制。

使用特权

评论回复
7
烟雨蒙蒙520|  楼主 | 2020-7-26 16:46 | 只看该作者
3安装和运行STM32CubeMX
3.1系统要求
3.1.1支持的操作系统和体系结构
•Windows®7:32位(x86)、64位(x64)
•Windows®8:32位(x86)、64位(x64)
•Windows®10:32位(x86)、64位(x64)
•Linux®:32位(x86)和64位(x64)(在RedHat、Ubuntu和Fedora上测试)
由于STM32CubeMX是一个32位应用程序,因此某些版本的Linux 64位
发行版需要安装32位兼容软件包,如ia32libs。
•macOS®:64位(x64)(在El Capitan和Sierra OS X上测试)
3.1.2内存先决条件
•建议最小RAM:2 GB。
3.1.3软件要求
必须安装Java Run Time Environment 1.7(1.7_45或更高版本)或1.8。
请注意,Java9和Java10不受支持,并且使用进行的验证是有限的
爪哇11。
在Oracle发布有关“结束Oracle JDK 8的公共更新”之后,您可以
通过访问OpenJDK 8https://adoptopenjdk.net/。
对于Eclipse插件安装,请安装以下IDE之一:
•月蚀火星(4.5)
•日蚀霓虹灯(4.6)
•日蚀氧气(4.7)
3.2安装/卸载STM32CubeMX独立版本
3.2.1安装STM32CubeMX独立版本
要安装STM32CubeMX,请执行以下步骤:
1从下载STM32CubeMX安装包www.st.com/stm32cubemx。
2提取(解压缩)stm32立方码.zip将整个包放入同一目录。
三。检查您的访问权限并启动安装向导:
在Windows®上:
a) 确保您具有管理员权限。
b) 双击SetupSTM32CubeMX-版本.exe文件以启动
安装向导。在Linux®上:
a) 请确保您有访问目标安装目录的权限。你可以跑了
以root用户(或sudo)身份安装以在共享目录中安装STM32CubeMX。
b) 执行“chmod 777 SetupSTM32CubeMX-5.0.0.linux”更改属性,因此
文件是可执行的。
c) 双击SetupSTM32CubeMX-版本.linux文件,或从
控制台窗口。
在macOS®上:
a) 确保您具有管理员权限。
b) 双击SetupSTM32CubeMX版本应用程序文件以启动
安装向导。
如果出现错误,请使用以下命令启动exe文件:
sudo java-jar SetupSTM32CubeMX-4.14.0.exe。
4在Windows上成功安装STM32CubeMX后,STM32CubeMX图标为
显示在桌面上,STM32CubeMX应用程序可从
程序菜单。ioc文件以立方体图标显示。双击
他们用STM32CubeMX打开它们。
5从磁盘中删除zip的内容。
注意:如果Java的正确版本™ 运行时环境(版本1.7_45或更高版本)不是
安装后,向导将建议下载并停止。重新启动STM32CubeMX
安装一次Java™ 安装完成。请参阅第19节:常见问题解答
安装JRE。
在Windows上工作时,只有最新安装的STM32CubeMX才会在中启用
程序菜单。当
指定了不同的安装文件夹。否则,新安装将覆盖
以前的那些。

使用特权

评论回复
8
烟雨蒙蒙520|  楼主 | 2020-7-26 16:48 | 只看该作者
3.2.2从命令行安装STM32CubeMX
从控制台窗口启动安装有两种方法:在控制台中
交互模式或通过脚本。
交互模式
要执行交互式安装,请键入以下命令:
java–jar SetupSTM32CubeMX-4.14.0.exe–控制台
在每个安装步骤中,都会请求一个答案(参见图2)。
图2。以交互模式安装STM32CubeMX的示例

使用特权

评论回复
9
烟雨蒙蒙520|  楼主 | 2020-7-26 16:49 | 只看该作者

使用特权

评论回复
10
烟雨蒙蒙520|  楼主 | 2020-7-26 16:52 | 只看该作者

使用特权

评论回复
11
烟雨蒙蒙520|  楼主 | 2020-7-26 17:33 | 只看该作者
本帖最后由 烟雨蒙蒙520 于 2020-7-26 17:37 编辑


使用特权

评论回复
12
烟雨蒙蒙520|  楼主 | 2020-7-26 17:43 | 只看该作者

使用特权

评论回复
13
烟雨蒙蒙520|  楼主 | 2020-7-26 17:51 | 只看该作者

使用特权

评论回复
14
烟雨蒙蒙520|  楼主 | 2020-7-26 18:00 | 只看该作者

使用特权

评论回复
15
烟雨蒙蒙520|  楼主 | 2020-7-26 18:00 | 只看该作者

使用特权

评论回复
16
烟雨蒙蒙520|  楼主 | 2020-7-26 18:02 | 只看该作者

使用特权

评论回复
17
烟雨蒙蒙520|  楼主 | 2020-7-26 18:02 | 只看该作者

使用特权

评论回复
18
烟雨蒙蒙520|  楼主 | 2020-7-26 18:03 | 只看该作者

使用特权

评论回复
19
烟雨蒙蒙520|  楼主 | 2020-7-26 18:04 | 只看该作者

使用特权

评论回复
20
烟雨蒙蒙520|  楼主 | 2020-7-26 18:05 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

641

帖子

0

粉丝