VSCode + PlatformIO IDE插件,以STM32F103ZET6为例,搭建标准库开发环境。
--就这水平
2021年10月10日 20:46
收录于文集
共2篇

        常用的单片机的开发软件一般有Keil、IAR、CCS等,但这些软件都有着或多或少的小问题,比如软件需要购买许可证、代码编辑和补全功能不完善等。下面将介绍基于VSCode + PlatformIO IDE插件的单片机开发环境。

        VSCode是一款由微软开发的一款开源代码编辑器,界面美观,且支持各种功能强大的插件,以至于有人调侃到万能的VSCode甚至可以用来写代码。那么应该就有人会问:“怎样才能拥有它呢?”其实也很简单,直接打开浏览器搜索“VSCode”找到官网即可,不放心的也可以直接复制链接https://code.visualstudio.com/进入官网(官网如图1所示),官网为全英文,但请不要害怕,直接点击中间的“Download for Windows”按钮即可下载到安装包。

图1.VSCode官网

        下载完毕后,找到安装包运行即可安装,安装过程非常友好,支持中文,无脑下一步即可,此处不多哔哔。

        VSCode安装完成后,双击图标打开软件,此时界面为英文,所以还需要安装中文插件。点击左侧边栏里的方块按钮,或者按快捷键Ctrl  + Shift + x,打开扩展商店,在扩展商店顶部的搜索栏中搜索Chinese,即可看到中文插件,点击安装即可(安装速度视网速而定),插件安装完毕重启软件即可(重启后如图2所示,菜单变为中文)。

图2.中文插件安装完毕

        下面步入正题,搜索并安装PlatformIO IDE插件,可能会需要python环境,最好提前安装Python并添加环境变量,做到有备无患,具体方法不再也哔哔。PlatformIO IDE插件的体积较大且依赖较多,安装速度较慢,请耐心等待。

        插件安装完毕后重启VSCode将会在左边栏出现蚂蚁图标(如图2的左边栏最后一个图标)。

图3.PlatformIO IDE界面

        点击该图标,出现如图3所示界面,点击New Project新建工程,在弹出的界面中输入相关信息:

Name:填写工程名称,随意但不要出现中文字符(本文采用芯片同名的工程名,图片仅供参考);

Board:选择芯片型号,也可以输入芯片型号检索(本文使用STM32F103ZET6);

Framework:选择代码框架,由于此处采用标准库开发,所以选择CMSIS;

Location:此处默认勾选,表示工程存放在.../User/用户名/Documents/PlatformIO/Project目录下,如果不想存放在此处,就取消勾选然后选择自己的存放目录,如图4所示。

图4.创建工程(仅供参考)

        信息填写完毕后,点击下方的Finish等待工程创建完毕,第一次创建工程可能会很慢,请耐心等待。工程创建完毕后,效果如图5所示;

图5.创建好的工程界面

左侧的工程目录结构为:

.pio目录:用于存放编译产生的.o文件和最终生成的.bin文件(PlatformIO不生成hex文件);

.vscode目录:用于存放编译器配置文件,其中的c_cpp_properties.json需要自行添加头文件路径;

include目录:用于存放头文件;

lib目录:用于存放外部库文件,此处用不到;

src目录:用于存放源文件;

test目录:用于存放测试文件,此处用不到;

platformio.ini文件保存IDE的配置信息,后面会用到。

        找一个完善的点灯库函数工程,将对应文件复制到上述目录中,移除原工程中的启动文件,否则会报错,此处删除原有的startup_stm32f10x_hd.s文件,如图6所示。

图6.向工程目录中添加文件(仅供参考)

        图6中的include和src目录下,我又自行创建了多个目录用于存放不同的文件,便于管理,用途如下:

Core目录用于存放核心相关的源文件和头文件;

Lib目录用于存放标准库的源文件和头文件;

Other目录用于存放自己编写的源文件和头文件,如led.c和led.h等;

Public目录用于存放通用的头文件和源文件,如USART.c和USART.h等;

User目录存放main.c和其他源文件。

        文件复制完毕,开始配置工程,打开.vscode目录中的c_cpp_properties.json,在includePath中添加头文件路径,同理下面的path中同样需要添加,添加完成并保存,最终效果如图7所示,仅供参考。

图7.配置编译器头文件路径(仅供参考)

打开工程目录下的platformio.ini文件,里面为建立工程是的相关信息。

在下行添加build_flag =  -D USE_STDPERIPH_DRIVER -D STM32F10X_HD -I src -I src/Core -I src/Lib -I src/Other -I src/User -I src/Public -I include -I include/Core -I include/Lib   -I include/Other -I include/User -I include/Public

如图8所示,可以看出-D后面为声明的内容,与其他软件无异;-I后为头文件目录(可以写一起,怕出问题就按如图8所示一行一行的写)

图8.配置platformIO IDE(仅供参考)

        至此,platformIO配置完毕,可以愉快的写代码了~。代码写完后,点击底栏左侧的勾号即可编译工程,编译通过将在终端显示SUCCESS和用时(如图9所示),否则会显示错误信息。

图9.代码编译通过并生成了.bin文件

        如果有相关的下载工具,可在编译无误后点击->直接烧录,此处我没有兼容的工具,所以采用另一种方法烧录.bin文件——使用软件CoFlash烧录.bin文件,打开CoFlash软件(可自行搜索下载,或者私信我)默认打开config标签,左侧选择芯片型号,右侧选择你的debug工具模式并设置相关参数(我用的是CMSIS-DAP工具,参数如图10所示,非同类型请自行摸索)。

图10.配置CoFlash(仅供参考)

        config标签设置完毕后,点击command标签(如图11),在右侧的Data File处选择生成的.bin文件,其余保持默认,点击下方的Program按钮开始烧录,底部将显示进度条和提示信息。

图11.CoFlash烧录界面(仅供参考)

        至此,PlatformIO的环境搭建及烧录方法介绍完毕,其他类型芯片同理。目前PlatformIO已支持多种常见的单片机,支持多种代码框架,基本能够满足个人的开发和学习需求。