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