配置VScode作为arduino开发环境

为什么使用VScode

Arduino官方配备的arduino ide使用方便且上手快捷,但是代码高亮,自动补全等功能的欠缺使得在其中开发稍微复杂一些的项目变得尤为痛苦。在某种程度arduino并不适合较为复杂的项目,大部分arduino兼容硬件板组使用的avr8位核心,在性能上有所限制;但是官方对STM32以及其他核心的支持很大的扩展了它的可能性。如果你和我一样是对于认真从底层学习STM32抱有怠惰态度的爱好者,那么大量的底层硬件库以及对简化C++语法的支持有足够的理由让你考虑一下使用这套环境进行开发。这时寻找一套功能略强的代码编辑器可以让你的开发过程略微舒适一些。

有着轻量化,跨平台,大量插件支持等特性,VScode是一个不错的选择。

标准步骤

后续问题及解决

以上是官方教程中给出的安装步骤。当你完成这些步骤,兴奋的尝试编译第一个项目时,你会发现满屏的编译错误。这里主要的问题是头文件索引丢失,intellisense不能自动找到必要的头文件路径。对于这个问题,arduino插件的开发者是这样答复的

Currently, the VSCode Arduino extension leverages the C/C++ for Visual Studio Code for language service and debugging. You can find the root cause and solutions from these links: [1], [2]

https://github.com/Microsoft/vscode-arduino/wiki/FAQ

在官方解决这个插件兼容性问题之前,我们需要手动配置头文件路径。

首先在用户设置中强制*Intellisense*使用*Tag Parser*,递归方式检索头文件。在配置文件中加入

"C_Cpp.intelliSenseEngineFallback": "Disabled",

"C_Cpp.intelliSenseEngine": "Tag Parser",

之后配置当前项目的*c_cpp_properties.json*

{

    "configurations": [

        {

            "name": "Arduino",

            "includePath": [

                "${workspaceRoot}"

            ],

            "browse": {

                "path": [

                    "C:\\Program Files (x86)\\Arduino\\tools\\**",

                    "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**",

                    "C:\\Users\\psrob\\Documents\\Arduino\\hardware\\**",

                    "C:\\Users\\psrob\\Documents\\Arduino\\libraries\\**",

                    "${workspaceRoot}"

                ],

                "limitSymbolsToIncludedHeaders": true,

                "databaseFilename": ""

            },

            "intelliSenseMode": "msvc-x64"

        }

    ],

    "version": 4

}

注意根据实际情况更改路径;上面的路径分别是arduino ide安装路径下的avr核心支持以及用户第三方库,第三方硬件核心支持。

选择下载器,硬件种类以及串口,再次尝试编译,不出意外就可以正常使用了。

参考

[1]https://github.com/microsoft/vscode-arduino/issues/438

[2]https://code.visualstudio.com/docs/cpp/faq-cpp


看起来B站的专栏并不支持markdown,能力有限,排版丑陋的话请谅解

最后安利一下个人博客

www.psrobotics.tech

之后有时间的话会更新一些正在进行的四足项目有关的内容

本文为我原创

本文禁止转载或摘编

-- --
  • 投诉或建议
评论