在Ubuntu下载以及使用STM32CubeMX
本文介绍了在Ubuntu 24.04系统下搭建STM32开发环境的完整流程。主要内容包括:1)安装GCC、OpenOCD、STLink工具链等必要软件;2)配置udev规则解决STLink设备权限问题;3)安装ARM交叉编译工具链和调试工具;4)下载配置STM32CubeMX;5)VSCode中设置Cortex-Debug插件和launch.json文件;6)修改Makefile并完成编译调试。文
前言
前不久完成了ROS1导航小车的制作,有兴趣查看制作整体流程的可以看我上一篇博客。之后准备做一个ROS2的平衡车玩一玩,并将持续更新制作心得和流程。这一篇就先搭建环境,因为树莓派5镜像最小从24.04开始,所以使用Ubuntu24.04系统,之前使用Keil是在Windows系统,来回切换系统终归不方便,所以这次直接用Ubuntu24.04 + VSCode + STM32CubeMX 进行下位机的开发
(测试了ubuntu22.04和24.04都可以,感觉应该ubuntu其他版本不会有太多变化)
下载相关编译工具以及依赖
下载gcc
更新软件缓存并安装 GCC 核心包及依赖
sudo apt update && sudo apt install build-essential
检查 GCC 版本,确认安装成功
gcc --version
g++ --version
如果输出类似 gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 的信息,说明安装成功。
安装openocd
sudo apt install openocd
openocd --version
正常输出会包含 OpenOCD 的版本信息:
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
安装stlink(如果是jlink就自行问AI)
sudo apt install stlink-tools
st-info --version
正常输出会显示类似 v1.7.0 的版本信息,说明工具安装完成。
关键配置:解决权限问题(必做)
默认情况下,普通用户访问 STLink 设备会提示 “权限不足”,需添加 udev 规则:
1. 创建 udev 规则文件
sudo nano /etc/udev/rules.d/99-stlink.rules
2. 粘贴以下内容并保存(Ctrl+O 回车,Ctrl+X 退出)
# STLink v1
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5750", MODE="0666", GROUP="plugdev"
# STLink v2
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="0666", GROUP="plugdev"
# STLink v2-1
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="0666", GROUP="plugdev"
# STLink v3
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="0666", GROUP="plugdev"
3. 重新加载 udev 规则并添加用户到 plugdev 组
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo usermod -aG plugdev $USER
验证 STLink 设备连接
将 STLink 调试器插入电脑 USB 口,执行以下命令检测设备:
st-info --probe
如果输出包含 Found 1 stlink programmers 及设备信息(如芯片型号、ID 等),说明设备识别成功。
安装 ARM GDB
sudo apt install gdb-multiarch
验证安装
gdb-multiarch --version
# 查看安装路径(关键,用于 VS Code 配置)
which gdb-multiarch
安装 ARM 交叉编译工具链
sudo apt install gcc-arm-none-eabi
验证安装
arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
下载STM32CubeMX
浏览器搜索STM32CubeMX,进入官网。选择Linux的STM32CubeMX

同意协议后,选择“作为访客下载”,填写你的邮箱验证后,它会发送一个链接到你的邮箱,点击链接即可下载。


如果是旧版本写好的工程移植到此,就选continue

将编译规则改为Makefile,点击生成工程。

VScode配置
配置Cortex-Debug
搜索插件Cortex-Debug进行下载

下载完后打开插件右键进行设置


注意换成你们自己的路径,如果是按照我描述的指令进行安装,通常路径是一致的:
"cortex-debug.gdbPath": "/usr/bin/gdb-multiarch", // ARM GDB 路径
"cortex-debug.openocdPath.linux": "/usr/bin/openocd", // OpenOCD 路径
"makefile.configureOnOpen": true, // 打开文件时自动配置 Makefile
"cortex-debug.armToolchainPath": "/usr/bin/" // ARM 工具链根路径

配置launch.json
第一次点击会自动生成launch.json

文件需修改,直接复制粘贴过去即可:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"showDevDebugOutput": "parsed", // 显示调试输出
"cwd": "${workspaceRoot}", // 调试工作目录为项目根目录
"executable": "./build/slave_computer.elf", // 指定要调试的 ELF 文件路径(没有将自动生成)
"name": "Debug STM32", // 调试配置名称(自定义)
"request": "launch", // 调试模式为 “启动调试”
"type": "cortex-debug", // 指定调试类型为 Cortex-M 架构
"servertype": "openocd", // 指定调试服务器为 OpenOCD
"device": "stm32f427", // 指定目标芯片型号(修改成自己的)
"gdbPath": "/usr/bin/gdb-multiarch", // 指定 GDB 路径
"configFiles": [ // OpenOCD 配置文件
"interface/stlink-v2.cfg",
"target/stm32f4x.cfg"
]
}
]
}
增添Makefile
打开Makefile文件增加一些内容:


进行编译
打开终端输入make进行编译:

插上STLink,连接开发板,点击进行调试即可运行代码:

更多推荐
所有评论(0)