STM32CubeIDE 特点

优点

  • ♾️ 免费 : 再也不用为破解而奔波
  • 🤳 编辑灵活 : 自带跳转和补齐功能
  • 🌈 丰富视窗 : CPU内核,IP寄存器和内存视图,实时变量视图
  • ⏩ 编译快速 : 支持多核编译
  • 💼 多项目管理 : 能够随时打开某个项目,并且可以单视窗内对比不同项目代码
  • 💪 高级调试功能 : Keil有的调试功能,CubeIDE都有
  • 🧊 集成STM32CubeMX : 不用再多开一个窗口
  • 🔌 支持ECLIPSE的™插件 : 可安装其他主题或者例如git之类的插件

缺点

  • 打开软件的速度较慢
  • 其他项目必须先导入才能编写和烧录
  • 不同版本之间的项目可能存在不兼容的情况
  • 集成的CubeMX打开速度较慢
  • 基于 gcc 的工具链编译出的文件不如 arm 工具链精简
  • 只适用于 ST 出品的芯片

当前软件版本

  • STM32CubeIDE : 1.7.0

1. 下载与安装

  1. ST 官网下载地址: https://www.st.com/zh/development-tools/stm32cubeide.html#get-software

点击下载Windows版CubeIDE

  1. 下载完成先解压,再以管理员身份打开安装程序

  2. 接下载选择中文的安装路径,勾选上要安装的组件并安装

2. 初步使用

2.1 选择工作区并启动

选择CubeIDE的工作区

工作区保存着你的编辑偏好和插件,例如黑色的主题颜色,默认的文件编码方式以及包含的项目目录

2.2 新建项目

依次点击 File > NEW > STM32 Project 新建工程

新建项目

依据和 CubeMX 相同的方式选择对应芯片并生成项目

2.3 配置芯片

找到 Project Explorer(项目管理窗口),展开刚刚创建的项目,并双击打开对应的 .ioc 文件

配置芯片

配置好需要的内容后,按下 Ctrl + S 保存项目并生成代码。

2.4 编译和烧录

点击 🔨 进行编译, 再点击 ▶️ 进行烧录

常用的按键

首次点击 ▶️ 会出现启动的配置,这里直接点击右下角 OK

3. 视窗介绍

3.1 工具栏常用

  • 编写代码时

工具栏常用-编写

  • 调试时

工具栏常用-调试

3.2 调试视窗常用

调试窗口常用

4. 常用编辑快捷方式

  • 跳转: Ctrl + 鼠标左键
  • 补齐: Ctrl + /
  • 搜索: Ctrl + H

5. 添加 IncludePath

在项目管理窗口,右键项目,选择底部的 Properties,再点击 C/C++ Build > Settings 选项卡中,再点击 MCU GCC Compiler > Include Path 中添加对应的目录

添加IncludePath

6. 设置默认编码

因为 eclipse 的默认编码是 UTF-8,而很多场合需要用到占用更少的 GBK 编码(例如显示汉字),因此需要全局设置默认编码方式

从导航栏点开 Window>Preferences>General>Workspace,将 Text file encoding 设置为 GB2312,应用并保存

添加IncludePath

7. 添加新文件夹编译

有的时候想要添加新的文件夹来存放代码,例如在项目文件同级目录添加了一个 BSP 的文件夹,但是发现存放进去的代码无法编译,这个时候需要如下配置项目

在项目管理窗口,右键项目,选择底部的 Properties,再点击 C/C++ General > Paths and Symbols 选项卡中,再点击 Source Location 中的 Add Source Folder 添加新的文件夹

添加新文件夹编译

8. 使用 printf 函数

8.1 printf 函数重定向

printf 函数极为重要,利用好可以极大帮助分析单片机运行状态。以下是将 printf 重定向到串口的方法,任选一种即可生效。

1
2
3
4
5
6
#include "stdio.h"
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h"
int _write(int file, char *ptr, int len)
{
int count = len;
if (file == 1) { // stdout
while (count > 0) {
if(*ptr == '\n')
HAL_UART_Transmit(&huart1, (uint8_t *)"\r\n", 2, 0xFFFFFFFF);
else
HAL_UART_Transmit(&huart1, (uint8_t *)ptr , 1, 0xFFFFFFFF);
++ptr;--count;
}
}
return len;
}

8.2 printf 输出小数

有的时候发现,printf可以输出整数和字符串,但是不能输出小数,这个时候需要配置以下内容:
在项目管理窗口,右键项目,选择底部的 Properties,再点击 C/C++ Build > MCU Settings 选项卡中,勾选 Use float with printf from newlib-nano (-u _printf_float)

printf 输出小数

9. 添加 DSP 库

9.1 添加需要的文件进入项目

首先需要将 DSP 库需要的文件添加到项目中,DSP 库位于CubeMX的软件包内。
头文件默认目录是:
C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F4\Drivers\CMSIS\DSP\Include
库文件默认路径是:
C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F4\Drivers\CMSIS\Lib\GCC\libarm_cortexM4lf_math.a

用户名 为自己电脑的用户名,建议自己一步步找到对应的路径,直接复制以上无法到达DSP所在文件夹。

添加 DSP 库后文件目录如下,一共四个文件:

添加DSP库路径

9.2 添加链接器配置

添加文件后,还需要将libarm_cortexM4lf_math.a文件添加到链接器中。
在项目管理窗口,右键项目,选择底部的 Properties,再点击 C/C++ Build > Settings 选项卡中,再点击 MCU GCC Linker > Libraries 中添加以下的内容:
Libraries 中添加 :libarm_cortexM4lf_math.a
Libraries search path 中添加 "${workspace_loc:/${ProjName}}/Drivers/DSP"

添加完成后效果如下:

添加连接器配置

9.3 添加DSP需要的宏定义

在项目管理窗口,右键项目,选择底部的 Properties,再点击 C/C++ Build > Settings 选项卡中,再点击 MCU GCC Compiler > Preprocessor 中添加以下3个宏定义:__FPU_PRESENT = 1U, _TARGET_FPU_VFP, ARM_MATH_CM4

添加完成后结果如下:

添加连接器配置

10. 窗口恢复默认布局

有的时候不小心手滑删掉了某个窗口,这个时候可以点击项目管理窗口的 Window 中的 Restore Default Layout 按钮,这样就可以恢复默认布局。

后言

另外嵌入式也是可以用 C++ 来写的,可以尝试用 C++ 来简化程序。

STM32CubeIDE 是基于 Eclipse 的,如果有问题可以尝试先用 STM32CubeIDE 关键字搜索问题,再不行可以尝试用 Eclipse 关键字搜索问题。

以上是偏向入门向的 Tip,后续如果有机会我可以把以下已经实现的内容加入到文章中。

  • .id 链接文件的配置和使用
  • 更多实用功能
点击查看更新记录

更新记录

2022-3-5

添加 DSP,printf 等内容

2022-2-9

第一次发布心得