Vscode下搭建STM32开发环境 -- Ubuntu 20.04

文章目录

      • 安装GNU Toolchain
      • 安装STM32CubeMX
      • Vscode 配置
      • 串口下载-stm32flash


安装GNU Toolchain

在ubuntu的apt源里面是还没有添加arm-none-eabi-gdb,所以需要自己手动安装,下面是一个博主的百度云链接:
安装gdb-arm-none-eabi
密码:o59s

sudo apt-get install gcc-arm-none-eabi
sudo dpkg -i libreadline6_6.3-8ubuntu2_amd64.deb
sudo dpkg -i gdb-arm-none-eabi_7.10-1ubuntu3+9_amd64.deb
sudo apt install libstdc++-arm-none-eabi-newlib

arm-none-eabi-newlib是嵌入式平台下的C语言标准函数库,如果不安装可能会产生编译错误。

安装STM32CubeMX

因为现在官网的固件库已经停止更新了,官网推荐使用STM32CubeMX,经过几次的使用过后,给我的感觉就是,太香了!!所有的配置只需要点一点鼠标就好了,不再像之前的固件库需要自己从头开始搭建工程。由于STM32CubeMX是依赖Java环境的,所以需要安装其环境jre:

sudo apt install openjdk-8-jre

在官网下载STM32CubeMX,然后下载下来的压缩包:en.stm32cubemx_v6-1-0.zip,解压后是这样的:
在这里插入图片描述
修改linux的权限:

chmod 777 SetupSTM32CubeMX-6.1.0.linux #修改权限
sudo ./SetupSTM32CubeMX-6.1.0.linux #运行软件安装包

然后,我把安装路径设置在了usr/local/STMicroelectronics/STM32Cube/STM32CubeMX下面,所以软件也是在那下面,每次打开极为不便,所以我创建了一个软链接到桌面:

ln -s /usr/local/STMicroelectronics/STM32Cube/STM32CubeMX/STM32CubeMX ~/桌面

这不就安装好了吗!hiahia~
Vscode下搭建STM32开发环境 -- Ubuntu 20.04_第1张图片
但是因为我哪里出错了,出现了权限问题,所以只能用root权限去运行CubeMX,这个问题以后再解决了。

Vscode 配置

到这里假设你会用CubeMX生成makefile,这时候打开Vscode是这样的:
Vscode下搭建STM32开发环境 -- Ubuntu 20.04_第2张图片
会有很多的红线,这是因为你没有添加includepath和define宏,所以现在要做的是,修改c_cpp_properties.json文件

首先Ctrl+Shift+P
Vscode下搭建STM32开发环境 -- Ubuntu 20.04_第3张图片
选择C/C++编辑配置, 然后就会在.vscode下面生成c_cpp_properties.json,这时候将Makefile中C_INCLUDESC_DEFS的内容添加到includePathdefines中。编译器的头文件目录也要添加到includePath中。修改后的配置文件如下:
Vscode下搭建STM32开发环境 -- Ubuntu 20.04_第4张图片

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/Core/Inc",
                "${workspaceFolder}/Drivers/STM32F1xx_HAL_Driver/Inc",
                "${workspaceFolder}/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
                "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F1xx/Include",
                "${workspaceFolder}/Drivers/CMSIS/Include",
                "${workspaceFolder}/Drivers/CMSIS/Include"
            ],
            "defines": [
                "USE_HAL_DRIVER",
                "STM32F103xB"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++14",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

现在就可以构建工程了,在项目的根目录下直接运行make命令,编译链接完成后,工程根目录下会多出一个build/目录,里面有我们需要的*.bin文件:
Vscode下搭建STM32开发环境 -- Ubuntu 20.04_第5张图片

串口下载-stm32flash

最后将二进制文件烧写到芯片中。一般来说,用JLink是最方便的,不仅可以烧写软件还能够进行硬件调试。但是对于没有Jlink的我来说,现在只有一根可以供电和烧写软件的USB转串口线,所以这个stm32flash的烧写软件就有用场了。stm32flash需要自己下载源码后编译安装:

git clone https://hub.fastgit.org/stm32duino/stm32flash
cd stm32flash/
make
sudo make install

用跳线帽将板子的BOOT0引脚接3.3V,BOOT1引脚接地,用USB转串口线将板子和电脑连接,然后上电。假设你的电脑有CH340芯片的驱动,上电后多了一个名为/dev/ttyUSB0的设备。可以用stm32flash查看串口的信息:

sudo stm32flash /dev/ttyUSB0

一切正常,然后用下面的命令将编译生成的二进制文件烧写入芯片中:

sudo stm32flash -w *.bin -v -g 0x00 /dev/ttyUSB0

参考:使用 VSCode 打造 STM32 开发环境

你可能感兴趣的:(STM32f103学习笔记,vscode,linux)