STM32f103学习笔记|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,解压后是这样的:
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

修改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~
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

但是因为我哪里出错了,出现了权限问题,所以只能用root权限去运行CubeMX,这个问题以后再解决了。
Vscode 配置
到这里假设你会用CubeMX生成makefile,这时候打开Vscode是这样的:
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

会有很多的红线,这是因为你没有添加includepath和define宏,所以现在要做的是,修改c_cpp_properties.json文件
首先Ctrl+Shift+P
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

选择C/C++编辑配置, 然后就会在.vscode下面生成c_cpp_properties.json,这时候将Makefile中C_INCLUDES和C_DEFS的内容添加到includePath和defines中。编译器的头文件目录也要添加到includePath中。修改后的配置文件如下:
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

{ "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文件:
STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04
文章图片

串口下载-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

【STM32f103学习笔记|Vscode下搭建STM32开发环境 -- Ubuntu 20.04】参考:使用 VSCode 打造 STM32 开发环境

    推荐阅读