本文介绍的软件,均可以在ST官网
st.com
免费下载(你需要注册登录),首选官网下载最新版本,如果有问题,可以在我的公众号回复:Cube
,获取截止今日的最新版本软件安装包。
STM32Cube 生态是ST公司开发的一套面向 STM32 微控制器和微处理器的完整软件解决方案,旨在为开发者提供一个简单而集成的开发环境。
STM32Cube 生态包括软件工具和嵌入式软件库,能够满足开发者在整个项目开发周期中的各种需求,从配置、编译、编程、调试到监控等。
再来重复几个基本概念吧:
ARM
是一家设计和授权微处理器架构和核心的公司,它不生产芯片,而是授权给其他厂商使用它的技术。ST
是一家生产和销售半导体产品的公司,它是ARM的合作伙伴之一,拥有使用ARM架构和核心的许可。STM32
是ST公司推出的一系列基于ARM Cortex-M内核的32位微控制器,它们具有高性能、低功耗、丰富外设和易开发的特点。
因此,可以说STM32是基于ARM技术的ST产品,它们之间有着紧密的合作关系。
STM32CubeMX
,一个适用于任何 STM32 设备的配置工具。它提供了一个易于使用的图形用户界面,可以生成用于 Cortex-M 内核的初始化 C 代码,或者用于 Cortex-A 内核的 Linux 设备树源代码。STM32CubeIDE
,一个集成开发环境。它基于开源的 Eclipse 或 GNU C/C++ 工具链,提供了编译报告和高级调试功能。它还集成了生态系统中其他工具的附加功能,例如 STM32CubeMX 的硬件和软件初始化和代码生成功能。STM32CubeCLT
,一个命令行开发工具集,提供了代码编译、板卡编程和调试功能。STM32CubeProgrammer
,一个编程工具(即烧录、下载)。它提供了一个易于使用且高效的环境,用于通过各种可用的通信媒介(JTAG、SWD、UART、USB DFU、I2C、SPI、CAN 等)读取、写入和验证设备和外部存储器。STM32CubeMonitor
系列工具。强大的监控工具,可以帮助开发者实时地调整和优化应用程序的行为和性能。STM32Cube MCU 和 MPU 软件包
,针对每个 STM32 系列提供了操作可用的 STM32 外设所需的所有嵌入式软件模块。它们包括驱动程序(HAL、低层等)、中间件以及大量用于各种实际用例的示例代码。STM32Cube 扩展软件包
,提供了面向应用的解决方案。它们补充并扩展了 STM32Cube MCU 软件包的功能,提供了额外的嵌入式软件模块。STM32 扩展软件包来自 ST 或经过认证的合作伙伴,围绕 STM32 创建了一个广泛且可扩展的嵌入式软件产品线。STM32Cube 生态为所有 STM32 用户带来了一个简单而集成的解决方案。它涵盖了整个 STM32 产品系列的开发,并提供了一套商业友好的解决方案:
软件直接去ST官网st.com
下载安装就行了,没什么好说的。
https://www.st.com/zh/development-tools/stm32cubeide.html#st_description_sec-nav-tab
STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。
STM32CubeIDE是一种高级C/C++
开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。
STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项目并生成初始化代码。在开发过程的任何时间,用户均可返回外设或中间件的初始化和配置阶段,并重新生成初始化代码,期间不会影响用户代码。
STM32CubeIDE包含相关构建和堆栈分析仪,能够为用户提供有关项目状态和内存要求的有用信息。
STM32CubeIDE还具有标准和高级调试功能,其中包括CPU内核寄存器、存储器和外设寄存器以及实时变量查看、串行线传输监测器接口或故障分析器的视图。
所有功能:
自己下载安装就行了,官网应该是可以直接进去的,并且支中文、英文、日文。记得不要光下载软件,没事多浏览浏览官网,总会有意想不到的收获。
安装(开发软件安装路径不要有中文,这个不用说了,其他选择默认就行了,需要xxx信任xxx的,选择信任就行了)之后,默认是英文的,如图所示:
上图界面是默认打开的information center
,它是Help菜单下的第一个选项。主要显示一些新闻、相关连接、还有工程的快捷创建(左侧)。
如果你习惯英文,就很好。如果有的选项看不懂,可以汉化一下。IDE的设置选项里面没有语言切换,但是前面讲过,它是基于Eclipse
开发的,所以可以通过eclipse的插件功能,来安装中文语言支持包。
Eclipse自己有一个Babel
项目,它的目的是让Eclipse支持多种语言,包括中文。
Babel项目提供了以下功能:
项目页面:https://eclipse.dev/babel/downloads.php(如果某一天链接失效了,可以去Eclipse官网直接搜索Babel)
这个页面会告诉你如何安装语言包(language packs),在STM32CubeIDE中的操作步骤是:
https://download.eclipse.org/technology/babel/update-site/latest/
Help
菜单,点击Install New Software…
选项,点击Add,自定义一个名称,输入url,把刚才的仓库连接添加进去。Babel Languagetool Packs in Chinese(simplified)
,先全选,然后展开,取消勾选....rt.rap....
这个语言包,如果安装了这个包的话,会导致欢迎页面报错。for Eclipse
…这一个语言包,会快一点,安装后大部分内容会变成中文(因为基于eclipse),不过也够用了。无论是否全部安装,都不会100%汉化,因为Babel是Eclipse的语言与翻译项目,不是针对STM32CubeIDE的。当然了,你也可以直接从Babel官网下载语言包,然后在Add那里选择本地即可,不推荐。
如果你去看别人的文章,基本都是丢一个2019的链接,或者镜像库的链接,基本都不是最新的,不过应该也能用。
熟悉软件后,可以卸载这些语言包,用原生的英文界面:
What is already installed?
](这个选项位于页面中下,蓝色超链接),打开已安装的软件列表。STM32CubeMX 是一款图形工具,可帮助开发人员生成初始化微控制器及其应用程序的代码。
用户可以通过一个界面来配置 MCU 的引脚排列并解决冲突,以及设置硬件外设和中间件。用户还可以配置时钟树并受益于自动执行特定计算的向导。
该工具还可以帮助选择 MCU 或 MPU 并下载其软件包。因此,它通常是与开发人员的第一个接触点。该工具可在 STM32CubeIDE 中使用或作为独立下载使用。
STM32CubeMX 还为开发人员的其他工作提供帮助。例如,找到正确的文档可能很棘手,尤其是对于如此庞大的库。ST 以其丰富的文档而闻名,合作伙伴告诉我们,这是他们选择我们器件的原因之一。因此, STM32CubeMX 独立版本中提供了教程视频,以帮助开发人员搜索信息。例如,提供有关如何配置时钟树、引脚或不同软件功能的内容。
keil 的 Runtime Environment,在前面的文章中已经详细介绍过了,可以自行查看。
STM32CubeMX和keil的RTE是两种不同的STM32开发环境,它们各有优缺点 。
STM32CubeMX是ST意法半导体推出的一款图形化配置工具,可以帮助您快速生成初始化代码,配置外设、时钟和引脚,使用HAL/LL库或标准库进行开发。它可以与多种IDE集成,包括keil、IAR、STM32CubeIDE等。
keil是一款老牌的通用嵌入式开发环境,支持多种MCU,包括51、ARM Cortex M0-7等。它有着强大的调试能力,可以进行在线仿真或离线模拟,观察CPU寄存器、内存数据、变量数据等信息。它也提供了丰富的开发库,可以通过pack manage下载使用。但它也有一些缺点,比如收费、不跨平台、没有UI界面对主题和插件的支持、代码提示功能不够智能等。
RTE是keil提供的一种软件组件管理框架,可以帮助您选择和配置需要的软件组件,比如CMSIS、Device Drivers、Middleware、RTOS等。它可以与STM32CubeMX协同工作,将STM32CubeMX生成的代码导入到keil中,并使用RTE进行软件组件管。
综上所述,STM32CubeMX和keil的RTE比较起来,有以下几点区别:
STM32CubeProgrammer(STM32CubeProg)是一款用于编程STM32产品的全功能多操作系统软件工具。
它通过调试接口(JTAG和SWD)和bootloader接口(UART、USB DFU、I2C、SPI和CAN)提供了一个易用高效的环境,用于读取、写入和验证设备内存。
STM32CubeProgrammer提供了广泛的功能,可对STM32内部存储器(如Flash、RAM和OTP)以及外部存储器进行编程。
STM32CubeProgrammer还允许选择编程和上传、编程内容验证以及通过脚本自动编程。
STM32CubeProgrammer提供了GUI(图形用户界面)和CLI(命令行界面)版本。
所有功能:
功能 | keil里面的download功能 | STM32CubeProgrammer |
---|---|---|
支持的接口 | ST-LINK或J-LINK等调试器 | JTAG、SWD、UART、USB DFU、I 2 C、SPI、CAN等 |
支持的存储器 | STM32的内部Flash或RAM | STM32的内部Flash、RAM、OTP以及外部存储器 |
支持的文件格式 | Motorola S19, Intel HEX, ELF, and binary formats | Motorola S19, Intel HEX, ELF, and binary formats |
支持的编程选项 | 无 | 选择编程和上传、编程内容验证、编程自动化等 |
支持的其他特性 | 无 | OTA编程、安全固件创建、STM32MP1系列外设启动和闪存等 |
STM32CubeMonitor系列工具能够实时读取和呈现其变量,从而在运行时帮助微调和诊断STM32应用。除了专业版本以外(电源、RF、USB-PD),多功能的STM32CubeMonitor还提供基于流量的图形化编辑器,以便轻松构建自定义操作面板和快速添加小部件,如计量、条形图和图表。借助非介入式监控,STM32CubeMonitor可保留应用的实时行为,并完美补充了执行应用分析的传统调试工具。
凭借远程监控和原生支持的多格式显示,STM32CubeMonitor使用户能够跨网络监控应用,同时测试多个设备,并在各种主机设备(如PC、平板电脑或手机)上执行可视化。此外,通过直接支持Node-RED®开源社区,STM32CubeMonitor支持无限的扩展选择以满足各种应用需求。
STM32CubeMonitor系列工具的功能比较:
软件 | 功能 |
---|---|
STM32CubeMonitor-Power | - 通过ST-LINK连接到STM32设备,实时监测功耗和电池寿命 - 支持多种电池类型和充放电模式 - 支持功耗数据的记录、重放和分析 - 支持自定义操作面板和小部件 - 支持远程监控和多格式显示 |
STM32CubeMonitor-RF | - 通过ST-LINK连接到STM32WL或STM32WB设备,实时监测无线性能 - 支持LoRaWAN、Sigfox、BLE、802.15.4等协议 - 支持无线数据的记录、重放和分析 - 支持自定义操作面板和小部件 - 支持远程监控和多格式显示 |
STM32CubeMonitor-USB-PD | - 通过ST-LINK连接到STM32G0或STM32G4设备,实时监测USB-PD协议 - 支持USB-PD 3.0规范,包括PPS、DRP、SRC、SNK等模式 - 支持USB-PD数据的记录、重放和分析 - 支持自定义操作面板和小部件 - 支持远程监控和多格式显示 |
STM32CubeMonitor | - 通过ST-LINK连接到任何STM32设备,实时读取和显示变量 - 支持直接采集模式或快照模式 - 支持变量数据的记录、重放和分析 - 提供基于流量的图形化编辑器,无需编程即可构建操作面板 - 提供大量的小部件,如计量、条形图和图表 - 支持多探头同时监测多个目标 - 支持远程监控和多格式显示 - 直接支持Node-RED开源社区 |
简单的示例:使用STM32CubeIDE创建一个STM32F103C8T6的工程,实现点亮LED的功能。
步骤一:登录STM32账号
首先在IDE中登录ST的账号(没有先去官网注册),菜单栏最后一个myST
,登录成功后会显示Hello name。
这是必要步骤。
步骤二:创建工程
打开STM32CubeIDE,选择一个工作区(workspace),也可以设置为每次都使用这个工作区,以后打开软件就不会有这个弹窗。
然后点击[File]>[New]>[STM32 Project],启动STM32工程向导。(或者直接在information center界面点击Start new STM32 project )
在弹出的对话框中,输入或选择目标MCU为STM32F103C8T6,然后点击[Next]。可以在前面加星标,方便以后创建工程的时候使用。
在下一个对话框中,输入工程名称,选择目标语言为C,目标文件类型为Executable,工程类型为STM32Cube,然后点击[Next]。
在下一个对话框中,选择所需的代码生成选项,例如是否复制所有用到的库文件到工程目录中,是否生成初始化代码等,然后点击[Finish]。
现在会生成一些初始化代码,其中有一个是ioc文件,IOC是"Integrated Operation Center"(集成操作中心)的缩写。用于保存STM32微控制器的配置信息和项目设置,包括引脚、时钟、中断、外设、电源、FreeRTOS。
步骤三:配置引脚
步骤四:配置时钟
使用核心板上的高速外部晶振HSE。
步骤五:生成代码
ctrl s
,生成代码。步骤六:编写用户代码并编译
HAL_GPIO_TogglePin(LED_GPIO_Port, GPIO_PIN_13); // 翻转LED状态
HAL_Delay(300); // 延时300毫秒
步骤七:调试与下载
更新ST-Link固件。
默认是生成elf文件的,它与hex的区别是:
文件格式 | 文件类型 | 文件内容 | 文件用途 |
---|---|---|---|
elf | 二进制 | 代码、数据、符号表、重定位信息等 | 调试、链接、烧录 |
hex | 文本 | 代码、数据、校验和等 | 烧录 |
如果要生成hex文件,可以在项目名称上右击,点击属性,按照如下设置:
也可以使用STM32CubeProgrammer下载程序:
把 永 远 爱 你 写 进 诗 的 结 尾 ~