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


安装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~
在这里插入图片描述
但是因为我哪里出错了,出现了权限问题,所以只能用root权限去运行CubeMX,这个问题以后再解决了。

Vscode 配置

到这里假设你会用CubeMX生成makefile,这时候打开Vscode是这样的:
在这里插入图片描述
会有很多的红线,这是因为你没有添加includepath和define宏,所以现在要做的是,修改c_cpp_properties.json文件

首先Ctrl+Shift+P
在这里插入图片描述
选择C/C++编辑配置, 然后就会在.vscode下面生成c_cpp_properties.json,这时候将Makefile中C_INCLUDESC_DEFS的内容添加到includePathdefines中。编译器的头文件目录也要添加到includePath中。修改后的配置文件如下:
在这里插入图片描述

{
    "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文件:
在这里插入图片描述

串口下载-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 开发环境

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值