试了网上大佬提供的关于使用vs code 搭建开发环境的教程感觉环境变量老是弄不好,然后就慢慢试好像试出来个笨办法。
安装完乐鑫提供的ESP-IDF TOOLS后会在开始菜单中出现一个快捷方式,运行快捷方式即可打开命令窗口并配置好环境变量,进入ESP-IDF提供的例程后就可以通过运行idf.py build或其他命令来编译或执行其他操作。
通过ESP-IDF TOOLS可以下载ESP-IDF但是好像没有4.0及以上版本的ESP-IDF(4.0以上支持cmake)。可以通过
git clone --recursive https://github.com/espressif/esp-idf.git
下载4.0以上版本然后在安装ESP-IDF TOOLS时选择已有的ESP-IDF并选择该路径.
贴下大佬的教程按照教程配置好后发现在vs code中无法编译。然后就按照教程中的tasks.json中的内容直接去命令行中试试。
{
"label": "menuconfig",
"type":"shell",
"windows": {
"command": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell",
"args": [
"idf.py",
"menuconfig"
]
},
试了不管时powershell还是cmd在进入ESP-IDF中调用idf.py都不行,又去看了下ESP-IDF Command Prompt (cmd.exe)快捷方式,可以看到在运行快捷命令时会打印一些信息,分别有python和git的使用路径和设置ESP-IDF的路径,还有下面一大串的添加ESP-IDF tools到PATH,教程里也有在PATH中国添加tools路径,但是好像就是不行(可能是我哪里操作有误或是其他原因,有明白的大佬还请指教,十分感谢)然后我就开始无脑把运行ESP-IDF Command Prompt (cmd.exe)的结果添加到PATH,就像介个样子。
然后就可以不用快捷方式直接从cmd里进入ESP-IDF的例程里就可以使用idf.py了。然后再使用重新打开cs code也可以使用了。输入idf.py后出现
编译下载串口监控也都可以用(速度真的比以前快多了),嘿嘿,我觉得命令行也挺好用的,看起来很清楚。
再贴一下三个json文件(我也看不是很明白,恳求大佬教我)。
//tasks.json文件
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build app",
"command": "idf.py",
"type": "shell",
"args": [
"build"
],
"presentation": {
"reveal": "always",
"echo": true
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "clean app",
"command": "idf.py",
"type": "shell",
"args": [
"fullclean"
],
"presentation": {
"reveal": "always",
},
},
{
"label": "flash app",
"command": "idf.py",
"type": "shell",
"args": [
"-p","COM9","flash"
],
"presentation": {
"reveal": "always",
},
},
{
"label": "monitor",
"type":"shell",
"windows": {
"command": "",
"args": [
"idf.py",
"-p",
"COM9",
"monitor"
],
},
"presentation": {
"reveal": "always",
},
"problemMatcher": []
},
{
"label": "menuconfig",
"type":"shell",
"windows": {
"command": "",
"args": [
"idf.py",
"menuconfig"
]
},
"presentation": {
"reveal": "always",
},
"problemMatcher": []
}
]
}
//settings.json文件
{
"files.associations": {
"stdio.h": "c",
"esp_spi_flash.h": "c"
},
"python.pythonPath": "C:\\Users\\lnl\\AppData\\Local\\Programs\\Python\\Python37\\python.exe",
//"terminal.integrated.shell.windows":"C:\\WINDOWS\\System32\\cmd.exe"
}
//c_cpp_properties.json文件
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${env:IDF_PATH}/components/**",
"D:/cygwin/usr/include",
"D:/esp32/esp-idf/components/driver/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "${default}",
"compilerArgs": [
"C:\\Users\\lnl\\.espressif\\tools\\xtensa-esp32-elf\\1.22.0-80-g6c4433a5-5.2.0\\xtensa-esp32-elf\\bin\\xtensa-esp32-elf-gcc.exe"
]
}
],
"version": 4
}
c_cpp_properties.json文件也可以在这里面配置,ctrl+shift+p搜索即可
按照自己文件的路径添加即可。
最后在补点:其实乐鑫有提供不通过快捷方式而进去cmd中调用idf.py的方法的
或许可以修改下tasks.json中的内容然后应该也是可以的,或者直接在vs code的命令窗口调用export.bat,有兴趣的可以试试,或许有大佬会将快捷方式里的目标类型啥的放进tasks.json里(好像也很好玩)。
以上纯属个人理解,有错误的话恳求指正。