<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VScode中集成esp8266/32開(kāi)發(fā)環(huán)境詳解

VScode中集成esp8266/32開(kāi)發(fā)環(huán)境詳解

作者:嵌入式筆記v 時(shí)間:2025-03-27 來(lái)源:今日頭條 收藏

引言

文章的起點(diǎn)源于一個(gè)小伙伴私信我,想了解如何在vscode中直接開(kāi)發(fā)esp8266。vscode其輕便,小巧等優(yōu)點(diǎn)越來(lái)越受各類(lèi)程序員的喜愛(ài)。 前面我分別介紹了如何在Windows中使用msys32,以及在Ubuntu(linux的一種發(fā)行版)搭建esp8266的開(kāi)發(fā)環(huán)境,直接基于命令行編譯,配置,下載等操作,這樣做的好處是避免直接基于IDE(集成開(kāi)發(fā)環(huán)境)開(kāi)發(fā),IDE背后幫我們封裝了很多操作,讓我們無(wú)法了解其背后實(shí)現的原理和機制,比如配置文件是如何生成的,多文件是如何編譯的,頭文件是如何關(guān)聯(lián)起來(lái)的等等問(wèn)題,這就需要我們去了解工程Makefile,一步步探索其中的原理。

本文引用地址:http://dyxdggzs.com/article/202503/468705.htm

回到正題,接下來(lái)主要介紹如何配置使得能夠在vscode中直接開(kāi)發(fā)esp8266,實(shí)現代碼編輯和編譯下載等操作全部在vscode中完成。OK, 開(kāi)始行動(dòng)~

開(kāi)始前工作準備

開(kāi)始前需要小伙伴先搭建好esp8266/32(之后以esp8266為例子)開(kāi)發(fā)環(huán)境,包括下載ESP8266_RTOS_SDK, 交叉工具鏈,msys32等,并設置IDF_PATH,PATH 環(huán)境變量,這里不再贅述,不熟悉的小伙伴請參考我之前的視頻Windows中搭建esp8266開(kāi)發(fā)環(huán)境。 當然還要下載vscode編輯器啦~,其下載安裝很簡(jiǎn)單,只需要到官網(wǎng)下載傻瓜式安裝即可。 下載后需要安裝一個(gè)"C/C++"插件

配置settings.json文件

點(diǎn)擊“文件”->"打開(kāi)文件夾",打開(kāi)自己的工程目錄,比如我的“Humiture”

點(diǎn)擊vscode左下方“齒輪”圖標, 選擇“設置”:

接著(zhù)會(huì )出現“用戶(hù)”, “工作區” 2種類(lèi)型的設置, 其中“用戶(hù)”設置相當于全局設置,如果工作區中未進(jìn)行相關(guān)配置,會(huì )默認使用“用戶(hù)”下的設置, 而“工作區”相當于局部設置,只作用于當前打開(kāi)的工作區,這里我們選擇“工作區”來(lái)介紹,無(wú)論哪種模式設置操作都是一樣的,只是作用域不同而已。

點(diǎn)擊“工作區”->"終端",點(diǎn)擊“settings.json”:

打開(kāi)“settings.json”后,將其修改成以下內容,并保存:

{
   "terminal.integrated.shell.windows": "D:msys32msys2_shell.cmd",//這里根據自己的實(shí)際路徑
   "terminal.integrated.shellArgs.windows": [
       "-defterm",
       "-no-start",
       "-mingw32",
       "-here"
   ],
   "terminal.integrated.automationShell.linux": "",
   "terminal.integrated.automationShell.windows": "",
   "extensions.confirmedUriHandlerExtensionIds": [
   
   ]

}

settings.json配置

以上配置說(shuō)明:

  •  "terminal.integrated.shell.windows": "D:msys32msys2_shell.cmd"

----------------------是設置Windows環(huán)境集成終端,即msys32文件下的msys2_shell.cmd


  • "terminal.integrated.shellArgs.windows": 中的參數:

"-defterm" 表示將windows中集成終端作為默認終端,即上面的msys2_shell.cmd

"-no-start" 表示當我們點(diǎn)擊vscode下方的“終端”時(shí),不要默認msys32終端界面(小伙伴可以去掉這個(gè)選項,自行感受下)

"-mingw32" 表示指定使用mingw32終端,因為在msys32文件中有mingw32和mingw64,而esp8266在Makefile中就指定了必須使用mingw32,否則編譯會(huì )通不過(guò),感興趣的小伙伴自行分析下Makefile就能驗證了。

"-here" 表示打開(kāi)終端時(shí),默認的路徑就在工程,若不加此選項,這默認是在家目錄下(~),這樣方便我們直接點(diǎn)擊vscode中的終端時(shí),就可以直接make編譯拉,不然還要cd切換目錄~

  •  其他的參數,關(guān)系不大,這里就不一一說(shuō)明了

驗證下配置效果,點(diǎn)擊vscode下方的信息欄,打開(kāi)我們的終端:

嘗試配置,編譯

首先我們先嘗試下配置下我們的工程,在終端輸入make menuconfig命令:

發(fā)現配置失敗,根據提示“Your display is too small to run Menuconfig!” , 我們知道esp8266采用kconfig(類(lèi)似linux內核配置方式)圖形界面配置,因此我們只需要把終端界面拖大一點(diǎn),以滿(mǎn)足能夠全部顯示出menuconfig界面問(wèn)題就解決啦~

這里會(huì )出現一些亂碼(其實(shí)kconfig并是真正圖形,只是用工具模擬出圖形,之后有機會(huì )講解如何配置linux內核時(shí),我再來(lái)詳細說(shuō)明~), 解決的方法:在msys32etcprofile.dexport_idf_path.sh腳本中添加export LAND="en_US" ,導出LANG環(huán)境變量即可。

接著(zhù)重啟vscode,重新配置,正常顯示~

嘗試編譯, make -j4, 也是成功編譯:

創(chuàng )建工作區,實(shí)現跳轉,代碼自動(dòng)補全

前面我們只將工程代碼添加進(jìn)來(lái),而依賴(lài)的ESP8266_RTOS_SDK還沒(méi)關(guān)聯(lián)起來(lái)呢, 接下來(lái)我們就將其添加到當前工作區中。

  • 首先將工作區保存:點(diǎn)擊"文件"->“將工作區另存為...”

  • 接著(zhù)將ESP8266_RTOS_SDK添加進(jìn)來(lái), “文件”->"將文件夾添加到工作區",選擇ESP8266_RTOS_SDK

  • 配置c_cpp_properties.json 文件, 按住鍵盤(pán)的: shift + ctrl + p, 出現如下圖所示:

點(diǎn)擊框選,會(huì )默認創(chuàng )建c_cpp_properties.json, 并在“includePath”欄中添加以下自己實(shí)際的
ESP8266_RTOS_SDK/components路徑,當然如果你的工作還有其他依賴(lài),按此格式添加即可。

{
   "configurations": [
       {
           "name": "Win32",
           "includePath": [
               "${workspaceFolder}/**",
               "D:/msys32/home/40806/esp/ESP8266_RTOS_SDK/components/**"//自己要添加的頭文件路徑
           ], //其他內容是默認生成的,無(wú)需改動(dòng)
           "defines": [
               "_DEBUG",
               "UNICODE",
               "_UNICODE"
           ],
           "windowsSdkVersion": "10.0.18362.0",
           "compilerPath": "E:/visual stdio2019/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe",
           "cStandard": "c11",
           "cppStandard": "c++17",
           "intelliSenseMode": "msvc-x64"
       }
   ],
   "version": 4
}


當然修改完記得保存哦, 接下來(lái)我們就可以看到工程中包含的頭文件都顯示正常了(在此設置前很多#include “xxx”都紅色波浪線(xiàn)+黃燈提示無(wú)法加載頭文件):

接著(zhù)我們再試試能否代碼自動(dòng)補全功能和函數和變量跳轉:

可以看到隨著(zhù)一邊輸入,vscode也一邊提示相關(guān)補全,同時(shí)跳轉功能也是OK的。

總結

至此我們已經(jīng)成功在vscode搭建了esp8266/32的開(kāi)發(fā)配置, 接下來(lái)我們就可以在vscode一邊編寫(xiě)代碼,一邊配置,編譯,下載拉(其實(shí)就是把msys32終端集成到vscode中),感興趣的小伙伴趕緊嘗試下吧。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>