用vscode + platformIO +arduino配置环境且遇到的问题

本文详细介绍了如何在VSCode中配置Arduino环境,包括解决头文件包含问题、提升编译速度、修复编译错误和串口乱码问题。同时,也讲述了切换到PlatformIO进行编译的配置步骤,以及在PlatformIO中添加库文件和配置串口的方法。
摘要由CSDN通过智能技术生成

1.vscode+arduino环境配置

2.vscode+arduino遇到的问题

2.1 头文件包含不进去,会在头文件有波浪线

2.2 解决VScode编译Arduino程序速度慢的问题

2.3 出现Value is not accepted. Valid values: “c++98”, “c++03”, “c++11”, “c++14”, "c+

2.4 串口乱码

3.vscode+platformio+arduino环境配置

4.vscode+platformio+arduino编译遇到的问题

4.1 库文件的添加

4.2 platformio串口的配置

1.环境配置

下载vscode,ctrl+shift+P,输入configure display language,下载中文

下载过程参照这个网站:https://mp.weixin.qq.com/s/Se0-lMHXVj9oGXkakhQm9A

2.vscode+arduino遇到的问题

2.1 头文件包含不进去,会在头文件有波浪线

  原因:头文件索引丢失,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,递归方式检索头文件。在配置文件中加入。
主界面->文件->首选项->设置
在这里插入图片描述
粘贴以下内容

"workbench.iconTheme":"material-icon-theme",
"arduino.path": "D:\\Program Files (x86)\\Arduino",
"C_Cpp.intelliSenseEngine": "Tag Parser",
"editor.insertSpaces": true,
"files.autoGuessEncoding": true,
"arduino.logLevel": "info",
"explorer.confirmDelete": false,
"editor.detectIndentation": false,
"arduino.additionalUrls": "",

要根据自己的内容来更改
然后ctrl+shift+P,输入c/c++:edit configurations,找到包含路径,将自己的库路径放进去。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
文件到库文件名就好,
  以IRremoteESP8266-master来说,在包含路径直接写C:\Users\xin\Documents\Arduino\libraries\IRremoteESP8266-master**
就可以包含所有的头文件

原文链接:https://www.bilibili.com/read/cv3298341/

原文链接:https://blog.csdn.net/m0_55300358/article/details/116424377

2.2 解决VScode编译Arduino程序速度慢的问题
  编译时可以看到VScode有Warning警告,此时我们只需在当前项目的.vscode -> arduino.json文件中将输出目录 output 配置一下就可以大大提高二次下载的编译速度,注意json的格式,什么时候末尾该有逗号

 {
    "board": "esp8266:esp8266:generic",
   "configuration": "xtal=80,vt=flash,......省略一些    ",
   "programmer": "AVR ISP",
    "output": "./build",
    "sketch": "Wifi_Scan.ino"
 }

在这里插入图片描述
  若是没有.vscode文件夹,可以建一个新的。把arduino.json和c_cpp_properties.json文件加进去。编译后会出现settings.json。可能吧,试过很多方法,没注意到settings.json什么时候冒出来的。

原文链接:https://blog.csdn.net/qq__590980/article/details/104325906

2.3 出现Value is not accepted. Valid values: “c++98”, “c++03”, “c++11”, “c++14”, "c+ /h3>
方法1:打开c_cpp_properties.json

    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "C:\\Users\\tudou\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\**",
                "C:\\Users\\tudou\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.0\\**"

            ],
            "intelliSenseMode": "msvc-x64",
            "compilerPath": "C:\\Users\\tudou\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\1.22.0-80-g6c4433a-5.2.0\\bin\\xtensa-esp32-elf-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17"//这里加上c++17
        }
    ],
    "version": 4}

方法2:ctrl+shift+P,输入c/c++:edit configurations,找到这个改成c++17
在这里插入图片描述
原文链接:https://www.arduino.cn/thread-81253-1-1.html

2.4 串口乱码
  1)找到vscode的arduino拓展的安装目录,找到util.js这个文件,以我电脑上的为例,(注意不同电脑下,路径不同,一般是在用户文件夹下,找不到的话就直接用文件管理器搜索):
C:\Users\xin.vscode\extensions\vsciot-vscode.vscode-arduino-0.4.4\out\src\common
在这里插入图片描述
  2)ctrl+f,输入os.platform找到下面的代码,注释掉

if (os.platform() === "win32") {
        try {
            const chcp = childProcess.execSync("chcp.com");
            codepage = chcp.toString().split(":").pop().trim();
        }
        catch (error) {
            outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
            \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
            codepage = "850";
        }  

3)将上述的代码注释掉

/*
    if (os.platform() === "win32") {
        try {
            const chcp = childProcess.execSync("chcp.com");
            codepage = chcp.toString().split(":").pop().trim();
        }
        catch (error) {
            outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
            \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
            codepage = "850";
        }
    }
*/

在这里插入图片描述
4)重启Vscode

原文链接:https://mp.weixin.qq.com/s/Se0-lMHXVj9oGXkakhQm9A

原文链接:https://blog.csdn.net/xuchaoxin1375/article/details/115109080

以上全为vscode+arduino的环境配置,个人认为编译比vscode+platformio慢

3.vscode+platformio+arduino环境配置

随后改为vscode+platformio进行编译。

配置环境和新建工程参访这个:https://zhuanlan.zhihu.com/p/78722930
第一次新建工程因为platformio基于外网git下来的环境,可以去网好一点的地方建工程,platformio第一次配置环境会比较慢。耐心等待。
如果网不好,换个方式吧,esp-idf也不错,不要用platformio+vscode。

4.vscode+platformio+arduino编译遇到的问题

4.1 库文件的添加
想要加的库可以直接在platformio中下载,也可以github下载最新的库,然后把库放进本地的文件夹里。
以下文件路径仅作参考:
这是esp32环境的库的路径
C:\Users\xin.platformio\packages\framework-arduinoespressif32\libraries

在这里插入图片描述
这是esp8266环境的库的路径
C:\Users\xin.platformio\packages\framework-arduinoespressif8266\libraries

在这里插入图片描述
4.2 platformio串口的配置
在platformio.ini文件中添加 monitor_baud = 115200 然后点击下方插座图标,即可打开串口。当然程序中串口也要和platformio.ini的波特率一致
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值