新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > VScode中集成esp8266/32開發環境詳解

        VScode中集成esp8266/32開發環境詳解

        作者:嵌入式筆記v 時間:2025-03-27 來源:今日頭條 收藏

        引言

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

        本文引用地址:http://www.104case.com/article/202503/468705.htm

        回到正題,接下來主要介紹如何配置使得能夠在vscode中直接開發esp8266,實現代碼編輯和編譯下載等操作全部在vscode中完成。OK, 開始行動~

        開始前工作準備

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

        配置settings.json文件

        點擊“文件”->"打開文件夾",打開自己的工程目錄,比如我的“Humiture”

        點擊vscode左下方“齒輪”圖標, 選擇“設置”:

        接著會出現“用戶”, “工作區” 2種類型的設置, 其中“用戶”設置相當于全局設置,如果工作區中未進行相關配置,會默認使用“用戶”下的設置, 而“工作區”相當于局部設置,只作用于當前打開的工作區,這里我們選擇“工作區”來介紹,無論哪種模式設置操作都是一樣的,只是作用域不同而已。

        點擊“工作區”->"終端",點擊“settings.json”:

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

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

        }

        settings.json配置

        以上配置說明:

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

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


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

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

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

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

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

        •  其他的參數,關系不大,這里就不一一說明了

        驗證下配置效果,點擊vscode下方的信息欄,打開我們的終端:

        嘗試配置,編譯

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

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

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

        接著重啟vscode,重新配置,正常顯示~

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

        創建工作區,實現跳轉,代碼自動補全

        前面我們只將工程代碼添加進來,而依賴的ESP8266_RTOS_SDK還沒關聯起來呢, 接下來我們就將其添加到當前工作區中。

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

        • 接著將ESP8266_RTOS_SDK添加進來, “文件”->"將文件夾添加到工作區",選擇ESP8266_RTOS_SDK

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

        點擊框選,會默認創建c_cpp_properties.json, 并在“includePath”欄中添加以下自己實際的
        ESP8266_RTOS_SDK/components路徑,當然如果你的工作還有其他依賴,按此格式添加即可。

        {
           "configurations": [
               {
                   "name": "Win32",
                   "includePath": [
                       "${workspaceFolder}/**",
                       "D:/msys32/home/40806/esp/ESP8266_RTOS_SDK/components/**"//自己要添加的頭文件路徑
                   ], //其他內容是默認生成的,無需改動
                   "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
        }


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

        接著我們再試試能否代碼自動補全功能和函數和變量跳轉:

        可以看到隨著一邊輸入,vscode也一邊提示相關補全,同時跳轉功能也是OK的。

        總結

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 玉树县| 齐齐哈尔市| 新野县| 交城县| 东城区| 常德市| 岱山县| 芦山县| 奎屯市| 桦南县| 罗源县| 喜德县| 长武县| 华亭县| 秦安县| 曲松县| 蕲春县| 饶平县| 平远县| 靖安县| 柳江县| 蒙阴县| 乌兰浩特市| 万盛区| 萨迦县| 南阳市| 乾安县| 兴海县| 鲁山县| 阿坝| 垦利县| 彰武县| 剑阁县| 岳西县| 台北市| 鄂尔多斯市| 当雄县| 启东市| 临朐县| 贞丰县| 延川县|