ESP32-IDF環境搭建

2022-01-06 翰林創客
前言

  入坑嵌入式以來,一直都在尋找一款通用MCU控制器:他應擁有優秀的計算處理能力、豐富的外設擴展能力、支持有線/無線聯網、小巧的封裝。自從ESP8266爆火以來,熟悉過它的使用,但窘於硬體限制,只能做一些簡簡單單的事情,很多應用都需要搭配另外的MCU,體現不出多功能。隨後ESP32發布,600MIPS運算能力、WIFI+BLE+ETH、QFN封裝、不到10元的價格。現在ESP32的生態可謂相當成熟,樂鑫ESP-IDF的教程遍天是,數款模組和開發板任君選擇,Arduino、PlatformIO、NodeMCU 都對ESP32提供了支持。比較有意思的是:前不久樂鑫發布了ESP32-S3-BOX AI語音開發套件,為用戶提供了一個以離線和在線語音助手為核心的智能設備開發平臺,其付出尤為可嘉。  本文是基於Windows系統下的環境搭建,若需要Linux系統下的請出門右轉!

一、ESP32開發環境選擇

ESP32的SDK有兩種: 樂鑫原廠的SDK(基於ESP-IDF)和Arduino開源平臺(Arduino開源庫)進行開發。Arduino對新手入門是非常友好的!

編譯環境選擇: Windows 和 Linux 。  之所以選擇Windows是因為其開發工具和軟體資料較多,並且提供系列的教程,查找資料十分方便,對小白來說簡直是如獲珍寶!

Windows編譯方式選擇:

1、GNU Make:此編譯方式較慢;

2、CMake:樂鑫提供的最新編譯工具,編譯速度快,windows下非常好用。

IDE開發工具選擇:  

1、Eclipse:由於本人不熟悉,所以不介紹,感興起的可自行百度學習!

2、Vscode:由樂鑫提供安裝插件,功能強大,是一款較為好用的編輯器。

二、Windows下基於 Vscode開發環境搭建2.1、Python環境安裝

  安裝版本需要3.8及以上版本,否則後面會出現一大堆錯誤。

  下載網址:https://www.python.org/downloads/

  雙擊安裝包,切記選擇 ADD Python 3.8 to PATH選項,安裝位置也可以選擇自定義安裝(Customize installation),切記安裝路徑出現空格或特殊字符,選擇後一路傻瓜式的Next即可完成安裝:


  安裝完成後,打開Windows命令行窗口(快捷鍵:Win + R),輸入 cmd 回車,查看Python版本輸入 python --version後回車,切記版本要大於3.8及以上:


  其次,還需輸入 python.exe -m pip install --upgrade pip 安裝更新python標準庫文件:

        至此,Python環境已安裝完成。

2.2、Git環境安裝

  Git對版本沒有要求,一路Next即可完成安裝。  下載網址:https://git-scm.com/downloads


2.3、安裝esp-idf-tools-setup

  下載網址:https://dl.espressif.com/dl/esp-idf/

  安裝程序分為在線安裝和離線安裝,這裡強烈建議使用離線安裝方式,因為涉及到在線下載一些國外鏡像失敗的情況,而且沒有梯子的話容易出錯。

單擊下載離線版本1.6G左右,文件雖然很大,但後期會省很多事情!!!


  雙擊下載好的esp-idf-tools-setup-offline-2.9.exe應用程式。

        勾選我同意協議,單擊Next按鈕下一步:


  注意!!!注意!!!注意!!!

  勾選NEXT選項後進入當前頁面,在這裡會檢查系統的相關環境,安裝程序會檢查你當前系統有沒有打開"長路徑支持",因為GNU編譯器產生的編譯文件會有非常深的目錄結構,如果不支持長路徑,編譯可能出現文件不存在,目錄不存在等奇怪的錯誤。根據頁面信息,大概意思是安裝程序檢查到在註冊表中未啟用長路徑支持。


  解決辦法:

  (1)直接單擊Apply Fixes按鈕,彈出確認對話框,是否應用命令修復更新你的系統環境並重新檢查,單擊是,會彈出系統註冊表管理員權限打開,單擊確認。


  (2)打開註冊表 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 設置為 1。該操作需要管理員權限。

        操作:Win + R打開運行窗口,輸入regedit後回車打開註冊表編輯器,找到如上目錄下的LongPathsEnabled變量,將其值設置為1,若沒有改變量,直接新建一個DWORD(32位)值的變量,並將值設置為1,確保變量生效,選擇關機重啟後重新安裝該esp-idf-tools應用程式。

        (3)使用管理員權限打開Windows PowerShell輸入命令:powershell -Command "&{Start-Process -FilePath reg'ADD HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f' -VerbrunAs}"。

  經過上面的操作,註冊表會打開長路徑支持。(下圖操作可不用打開)


  安裝程序出現下圖中圈1的信息,說明檢查完成,可以下一步,如果沒有此信息,檢查上一步操作或重新打開安裝程序。


  接下來安裝idf庫,選擇最新的V4.3版本,單擊Browse選擇或與直接輸入方式(F:\ESP32\ESP_IDF\esp-idf-v4.3這個目錄是我新建的),選擇安裝位置。單擊下一步

  接下來選擇idf tools的安裝目錄(F:\ESP32\ESP_IDF_Tools2.9這個目錄是我自己建立的),單擊下一步


  選擇安裝組件,這裡選擇全部安裝(Full installation),單擊下一步


  確認一下安裝信息和目錄,單擊Install按鈕,開始安裝


  開始安裝,這個步驟要等很久


  提示安裝完成,單擊Finish按鈕。


  完成後會自動打開PowerShell和CMD窗口,分別輸入idf.py --version可正常查看到idf版本號即可

  至此,idf工具安裝完成,你也可以直接在這兩個窗口內編譯你的esp32工程。

2.4、編譯驗證

輸入命令:(意思分別是:切換到Demo文件夾下hello_world工程的工作目錄;顯示目錄文件;清理工程;編譯)

cd examples\get-started\hello_world
dir
idf.py clean
idf.py build


三、VScode插件安裝及環境配置

  從微軟官網選擇系統匹配的版本下載Vscode,一路Next安裝到底。


  至此,VScode插件和IDF編譯工具也導入完成,下面可以開始你的項目設計吧!!!

四、總結

  樂鑫不僅設計性能卓越的 AIoT 晶片,還專注於自研開源的作業系統和軟體架構。為客戶提供從產品設計、認證到製造的全方位專業支持服務。藉助樂鑫的服務資源即可加速產品上市時間,快速、高效地將產品應用到實際場景中。是我目前認為國內較好的物聯網晶片方案供應商。旗下的ESP8266、ESP-01S、ESP12系列、ESP32系列等,是我用的較多的晶片選擇方案,總體來所,性能強大,易於開發。

 

個人筆記總結,若有問題,歡迎留言、批評指正!!!

CSDN:https://blog.csdn.net/TYZ_123/article/details/121737603

相關焦點

  • 國內linux和macos搭建esp32的開發環境
    方式開發,platformIO封裝不錯使用官方idf在linux、macos、windows開發最近想了解一下官方SDK的開發方式,在搭建esp32的環境中遇到許多問題。該搭建方案和官方文檔配合查看,部分細節該文檔未列出樂鑫官方文檔GitHub個人網站:國際個人網站:中國第一步:基礎工具安裝在linux或者macos中搭建esp32的環境,先要安裝一些基礎工具,如python等等。macos可以使用Homebrew、macports安裝相關的工具以及依賴。
  • ESP32S2 與 ESP32 開發方式對比,帶你入門環境搭建
    目前我們推薦使用的是 Linux 環境開發,因此本文教程也是圍繞使用 window 自帶的 Linux 子系統進行的環境搭建。當然了,你也可以用虛擬機實現!    因此,根據下面文檔,搭建最新的 ** ESP32** 即可支持 ESP32S2 啦!
  • 嘗試在Win10系統搭建esp32編譯系統.下
    要將舊版本的預編譯環境中的數據移動到新版本:把舊的 MSYS2 環境(即 C:\msys32)移動/重命名為不同的目錄(即 C:\msys32_old)。按照前文所述步驟下載新的預編譯環境。將新的 MSYS2 環境解壓縮到 C:\msys32 (或其他位置)。找到舊的 C:\msys32_old\home 目錄並把它移到 C:\msys32。
  • 啟明雲端分享|盤點Esp32-C3與Esp8266 的區別
    ESP32-c3 :mkdir espcd ./esp git clone --recursive https://github.com/espressif/esp-idf.git克隆文件到當面路徑下,也就是剛剛創建的文件夾esp
  • ESP32 設備運行 FreeRTOS IoT 作業系統
    設置 ESP32 的 FreeRTOS 開發環境需要配置 ESP32 BoardManager 所需的 ToolChain,連接設備的串口轉換軟體,以及下載 FreeRTOS 軟體包等。/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz解壓、設置環境變量:mkdir -p ~/espcd ~/esptar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
  • ESP32最新SDK V3.2 開發環境的搭建
    前言之前開發ESP32,一直用mingw32.exe 進行編譯與下載,最近更新了ESP32的SDK
  • ESP32 入門教學,不入門,不教學
    我這次給大家介紹一個晶片,esp32,沒有收過任何費用,就是純技術分享,讓初學者少踩點坑吧,我也是最近用這個晶片,覺得爽得一X。先介紹下如何搭建編譯和燒錄環境,我用的是最傻瓜的環境,我覺得這個也是最容易上手的,我們所有的功能核心都是代碼,所以我覺得這部分你習慣就好。
  • Linux系統下ESP32開發板搭建RT-Thread開發環境
    搭建步驟以下步驟是以Ubuntu 16.04 LTS 32bit 英文版中為例,其他Linux系統類似,但不排除有小細節不同(如包管理軟體為yum等)。編譯首先修改個Makefile中的一個小錯誤,python那行命令路徑需要修改:pythonesp-idf-port/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32elf2image --flash_mode "dio" --flash_freq "40m"--flash_size "4MB
  • VsCode設置ESP32工具鏈+刨根問底點燈
    esp32/get-started/index.htmlSDK配置編輯器,用於配置ESP-IDF項目(esp-idf menuconfig)。輕鬆為ESP-32和ESP32 S2晶片構建,快閃記憶體和監視代碼。KConfig和ESP-IDF的語法突出顯示Kconfig樣式語法驗證(如果啟用)。命令的本地化(英語,中文,西班牙語),您也可以添加語言貢獻。
  • ESP32 coredump 分析
    上次寫了一個 ESP32 入門,我想有必要再寫這篇文章,這次主要是分析 coredump 的,這就像 Android 和 Linux 系統的死機分析,有意思,也有難度。我覺得 ESP32 還有一個好處是,對於初學者真的太方便了,買個 Linux 開發板可能要幾百塊,但是買一個 ESP32 模塊的話,也就 40 塊錢,而且也是跑 Freertos 系統的,還有還有就是非常方便攜帶,調試燒錄供電都可以用一個 usb 線搞定,說真的,我沒有收錢宣傳,是真的適合沒有錢又喜歡入門嵌入式的同學們,但是這個只是起點,嵌入式後期我覺得一定是要學習Linux 的。
  • 【玩轉ESP32】7、ESP32連接wifi
    收錄於話題 #玩轉esp32sta;wifi_init_config_t cfg=WIFI_INIT_CONFIG_DEFAULT()用於獲取wifi的默認配置;esp_wifi_init(&cfg)用於初始化wifi;esp_event_handler_instance_register 用於向上面的esp_event_loop_create_default()`註冊回調函數,
  • 使用ESP32來學習Python之開發環境搭建
    Python是近來比較火的一種語言,對嵌入式人員來說,通過ESP32來學習Python是一種比較便捷、靠譜的方法。
  • 啟明雲端WT-ESP32-DevKitC V4開發板直連天貓精靈IOT開放平臺
    天貓精靈語音智能音箱是時下最萌最潮的網紅,支持對IoT設備進行語音控制、場景搭建、面板控制等。通常我們在應用中,登陸阿里生活物聯網平臺創建產品後,使用天貓精靈app對天貓精靈音箱進行配網,配網成功後,Wi-Fi SDK會自動連接精靈雲服務,成功之後,用戶便可感受智能家居體驗了。
  • ESP32晶片-LEDC外設(另附Arduino代碼)
    在文檔內,我們就看這裡就好在大量的說明舵機之前,不妨讓我們先來了解一些關於晶片本身的能力:https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/ledc.html有個神奇的地方
  • ESP32 For Arduino雜記
    ESP32 使用MicroPython 控制Gopro Hero Black4ESP32晶片-LEDC外設(另附Arduino代碼)Dji TT無人機擴展件ESP32晶片(D2WDQ5)Thonny燒錄ESP32 mpy固件ESP32+Thonny+固件燒錄+編寫建議ESP32
  • esp32系列教程03:Secure Boot 方案
    默認情況下 efuse 中的 DISABLE_DL_ENCRYPT, DISABLE_DL_DECRYPT 和 DISABLE_DL_CACHE 會被燒寫為1,這樣 UART bootloader 時就不能讀取到解密後的 flash 數據efuse 中的 FLASH_CRYPT_CONFIG 被燒寫成 0xf,此標誌用於決定加密 key 的多少位被用於計算每一個 flash 塊(32
  • 【玩轉ESP32】14、esp32 mqtt client
    收錄於話題 #玩轉esp32組件支持MQTT over TCP、SSL with mbedtls、MQTT over Websocket、 MQTT over Websocket Secure;支持訂閱、發布、身份驗證、遺囑消息、心跳、以及3個消息等級。
  • 老宇哥帶你玩轉ESP32:02使用VSCode+PlatformIO搭建開發環境
    老宇哥帶你玩轉ESP32:01入門介紹 (點擊閱讀)有部分同學反饋下載的時候特別慢,這個庫是託管在GitHub的,國內有部分網絡訪問不了或者是非常慢,其實有一些方法是可以加快下載速度的,比如修改hosts文件,
  • 另類的Arduino&ESP32開發環境搭建(一)
    另類的Arduino&ESP32開發環境搭建(一)Arduino IDE下的ESP32