在Archlinux中通过VSCode开发STM32

在Archlinux中通过VSCode开发STM32

ST官方连接:浏览器搜索 VSCode STM32

Windows 中需要安装 STM32CubeMX 和 VSCode + STM32CubeIDE for Visual Studio 插件,驱动在安装 STM32CubeMX 时已同步安装。直接开始新建项目即可。

安装STM32CubeMX

可以使用 paru 或 yay 安装 AUR 软件包

1
yay -S STM32CubeMX

JDK 与 JRE、JVM 的关系

JRE(Java Runtime Environment):如果只是需要运行 Java 程序,安装 JRE 即可。

JDK:JDK 包含了 JRE 和开发工具,所以开发 Java 程序需要安装 JDK。

安装 vscode + 插件 STM32CubeIDE for Visual Studio

1
yay -S visual-studio-code-bin

打开 VSCode 软件,搜索插件并安装

ls /dev 如果没有自己的stlink 则需要检查和设置参考链接

查看是否有如下的结果输出,没有的话就需要安装USB驱动

1
2
sudo dmesg | grep -i stlink
[ 970.723661] usb 1-2.2: Product: STM32 STLink

设置 udev 让 linux 将 stlink 链接到 /dev/xxx (注意根据搜索结果修改路径; *.rules代表bin目录中的所有.rules文件)

1
2
3
find / -name "*.rules"
cd /home/xxx/.local/share/stm32cube/bundles/stlink-gdbserver/7.12.0+st.2/bin/
sudo cp *.rules /dev/udev/rules.d

注销或重启后再次检查 /dev 如下为 stlink-v2 的正确响应

1
2
ls -al /dev/stlinkv2_2
lrwxrwxrwx 1 root root 15 Jan 8 23:46 /dev/stlinkv2_2 -> bus/usb/001/036

连接好硬件后先通过 STM32_Programmer_CLI 测试一下 参考链接

找到 VSCode 插件安装的位置(可以用find指令),如下是我电脑中 VSCode 插件的安装路径

~/.local/share/stm32cube/bundles/programmer/2.21.0/bin/STM32_Programmer_CLI

检测到 ST-LINK 和 STM32F103 通过 SWD 方式连接的结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
./STM32_Programmer_CLI -c port=SWD freq=4000
-------------------------------------------------------------------
STM32CubeProgrammer v2.21.0
-------------------------------------------------------------------

ST-LINK SN : 48FF73068287555321441081
ST-LINK FW : V2J46S7
Board : --
Voltage : 2.40V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x410
Revision ID : Rev X
Device name : STM32F101/F102/F103 Medium-density
Flash size : 128 KBytes
Device type : MCU
Device CPU : Cortex-M3
BL Version : --

单片机项目

参考链接

在 VSCode 中点击 STM32 插件图标,点击 Launch STM32CubeMX (如果需要设置路径可通过 which STM32CubeMX 指令查询)。

在弹出图形化界面中新建和设置stm32芯片。Project Manager 页面中设置项目名和存储路径,Tool/IDE 选择 CMake ,最后点击 GENERATE CODE 按钮生成项目工程。关闭 STM32CubeMX

返回 VSCode 界面,打开 CudeMX 生成的文件夹,在弹出气泡或 STM32 插件中自行点击 Setup STM32Cube project(s) 完成项目设置(重点,不然无法CMake插件中的编译选项没有被正确初始化,导致无法调试)。点击状态栏 build 选项查看是否编译成功,成功后点击 Run and Debug 按钮开始调试。