使用Visual Studio Code开发Arduino踩坑日记(持续更新)
环境描述:
- Windows10
- 由于项目要求Arduino IDE 1.5.2,亲测最新版本也可
- VScode 1.49.3 (user setup)
- Arduino插件 0.3.2
1.在browse.path中未找到包含文件
问题描述
在Arduino原生IDE中导入库没有问题,但是在VScode中导入库则有蓝色波浪线提示错误,底端调试控制台问题描述选项卡报错在browse.path中未找到包含文件。 C/C++ [x, 1]
截图如下
问题分析
VScode编辑Arduino文件实际上是调用的Arduino原生的IDE,因此所有的编译验证和上传本质上都是用的Arduino原生的IDE
而VScode则提供了文本编辑功能,包括代码补全和提示
Arduino的语法类似于C/C++,因此在Arduino中是使用C/C++的插件来提供代码补全和提示
所以问题出现在C/C++插件,C/C++插件找不到导入的库文件的位置,因此无法进行代码提示和补全
出现该问题就意味着一定安装了该插件,这个插件是微软官方出品的用于增强C/C++代码补全,提示,debugging和代码浏览的插件
因此问题就出现在该插件的库文件搜索路径上
解决思路
我们只需要编辑C/C++插件的库文件搜索路径,为其添加Arduino的库文件路径即可
VScode的所有插件的配置文件都保存在.vscode
这个文件夹下
而VScode配置文件又分为全局配置文件和局部配置文件,局部配置文件就是当前工程项目的文件夹下的.vscode
文件夹
局部配置文件如下,这里我的工程文件,即打开的文件是ARDUINOPROJECT
全局配置文件位置取决于安装的模式,是仅当前用户可用(user setup)还是此电脑所有人均可用,不同的安装模式全局的配置文件位置不同
我这里是仅当前用户(详见环境描述),因此全局配置文件位置在如下路径C:\Users\22321\.vscode
(22321是我的用户名)
因此只需要在当前项目配置文件夹和全局配置文件夹下创建C/C++插件的配置文件,编辑相同内容即可(避免因为配置文件不同造成冲突)
此外,由于我们安装的Arduino插件中也会设定调用C/C++插件时候默认的搜索位置,因此我们还需要编辑Arduino插件中调用C/C++插件时候的路径搜索位置
解决过程
-
编辑局部配置文件夹下创建
.vscode
文件夹(如果有则不用创建),在其中创建c_cpp_properties.json
文件,即C/C++配置文件写入如下内容
需要注意的是,这里7,8,9三行是我自己的库文件位置,在配置自己的
c_cpp_properties.json
文件需要改成自己的库文件位置,查看自己的库文件位置后面有介绍第七行
**
表示当前文件夹下所有文件及文件夹都是库文件{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:\\Program Files\\Arduino-1.5.2\\hardware\\arduino\\avr\\libraries\\**", "C:\\Program Files\\Arduino-1.5.2\\libraries", "C:\\Users\\22321\\Documents\\Arduino\\libraries" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "intelliSenseMode": "msvc-x64" } ], "version": 4 }
保存
-
编辑局部配置文件
将上面的局部配置文件c_cpp_properties.json
复制到全局的配置文件 -
编辑Arduino插件配置文件
添加如下内容
"C_Cpp.default.browse.path": [ "C:\\Program Files\\Arduino-1.5.2\\hardware\\arduino\\avr\\libraries\\**", "C:\\Program Files\\Arduino-1.5.2\\libraries", "C:\\Users\\22321\\Documents\\Arduino\\libraries" ],
-
保存,重启VScode,问题解决
附:查看库文件位置
Arduino库文件包含自带库文件和第三方库文件,第三方库文件通常位于如下路径C:\Users\22321\Documents\Arduino\libraries
,注意22321是我的用户名,具体查看时需要修改为你自己的用户名
自带库文件位置通常位于ArduinoIDE 安装的位置,查看Arduino IDE安装位置就不说了