<font color=black size=2> 本系列博客學(xué)習(xí)由非官方人員 半顆心臟 潛心所力所寫嫁艇,僅僅做個人技術(shù)交流分享,不做任何商業(yè)用途弦撩。如有不對之處步咪,請留言,本人及時更改益楼。
<font color=black size=2> 1猾漫、 爬坑學(xué)習(xí)新旅程,虛擬機(jī)搭建esp32開發(fā)環(huán)境感凤,打印 “Hellow World”悯周。
<font color=black size=2> 2、 巧用eclipes編輯器陪竿,官方教程在在Windows下搭建esp32開發(fā)環(huán)境禽翼,打印 “Hellow World”。
一 、前言闰挡;
欲要工其事锐墙,必要利其器;一個好的開始长酗,必須要有一個好的編譯器和環(huán)境溪北,上篇我們已經(jīng)提到了在
Linux
系統(tǒng)搭建編譯環(huán)境,還需要開發(fā)的編譯器夺脾,我堅(jiān)信很多小伙伴都是windows
系統(tǒng) 的之拨,所以這篇帶來的是:在windows
下搭建ESP32
的編譯環(huán)境和利用Eclipes
編譯器編譯我們的工程,一舉兩得咧叭!
安信可的一體化環(huán)境蚀乔,發(fā)現(xiàn)集成后,難于適應(yīng)最新版的
IDF
佳簸,為此博主辛苦敲打3個小時出此博文乙墙,未經(jīng)同意不得轉(zhuǎn)載,多謝合作生均!
二听想、工具下載材料;
eclipes
編譯器下載:點(diǎn)我下載马胧;樂鑫官網(wǎng)
提供的最新windows工具鏈下載:點(diǎn)我下載汉买;
三、工具安裝佩脊;
- 第一步:解壓上面下載好的
esp32_win32_msys2_environment_and_toolchain-20180110.zip
文件夾蛙粘,注意解壓后的名字是msys32
;比如我目前的路徑為E:\Esp32Study\ESP32IDE
威彰;
①出牧、我們把視野轉(zhuǎn)移到子目錄下的
etc\profile.d
文件夾下面,新建一個export_idf_path.sh
的命令符文件歇盼,注意格式是.sh
舔痕,見圖一;
②豹缀、其內(nèi)容如下代碼伯复,旨在指定編譯時候的路徑:<font color=red>第一個是指定了IDF
框架,第二個是指定了PY
等命令邢笙!</font>:
export IDF_PATH="E:/Esp32Study/ESP32IDE/msys32/home/Administrator/esp-idf"
export PATH="/mingw32/bin/:$PATH"
- 第二步:點(diǎn)擊主目錄下面的
msys2.exe
文件啸如,其實(shí)這是一個shell
命令!拉取下載最新版的IDF
框架氮惯,用git
指令拉取叮雳,貌似本地要安裝git
客戶端想暗,如果沒有安裝,請自行百度怎么安裝git
债鸡。<font color=blue>這里要等待3到4分鐘江滨,取決于網(wǎng)速!</font>:
git clone --recursive https://github.com/espressif/esp-idf.git
四厌均、初次編譯唬滑;
- 第一步:我們現(xiàn)在嘗試下在
windows
下編譯,先把EE:\Esp32Study\ESP32IDE\msys32\home\Administrator\esp-idf\examples\get-started
下面的hello_world
拷貝到任意一個文件夾棺弊,其實(shí)此刻的工程已經(jīng)和SDK包分離開了晶密!
- 我這里就在
esp-idf
同目錄下面新建子文件夾Project32
,同時把hello_world
復(fù)制到此文件夾下面!
-
第二步:我們
shell
命令模她,切換到我們的hello_world
文件夾稻艰;注意打開時候,已經(jīng)是在\home\Administrator
的目錄了侈净,所以我們僅需要cd ProjectEsp32\hello_world
;我們先配置
hello_world
的下載配置文件尊勿,輸入make menuconfig
:出現(xiàn)一個藍(lán)色小彈窗,這和我們上篇文章說的一樣畜侦,如下元扔,重要的是Flash size
改為 4MB 即可 ,第一個是端口設(shè)置旋膳,根據(jù)你插上來的ESP32
的端口決定澎语,注意格式是com+數(shù)字
,比如我當(dāng)前的是 17端口:
- 第三步:輸入編譯指令
make all
,編譯代碼验懊,此處會有5分鐘左右時間擅羞,請耐心等待!最后為下面輸出减俏,即為成功編譯!此命令適合配合樂鑫的下載軟件進(jìn)一步到固件燒錄到esp32
碱工!
CC build/xtensa-debug-module/eri.o
AR build/xtensa-debug-module/libxtensa-debug-module.a
LD build/hello-world.elf
esptool.py v2.3.1
To flash all build output, run 'make flash' or:
python /home/Administrator/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port com13 --baud 115200 --before default_reset --after h ard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 /home/Administrator/ProjectEsp32/hello_world/build/bootloader/ bootloader.bin 0x10000 /home/Administrator/ProjectEsp32/hello_world/build/hello-world.bin 0x8000 /home/Administrator/ProjectEsp32/hello_world/build/ partitions_singleapp.bin
- 第四步:或者輸入編譯指令
make flash
痛垛,編譯代碼并且燒錄草慧,此處會有5分鐘左右時間桶蛔,請耐心等待匙头!最后為下面輸出,即為成功編譯并且燒錄成功仔雷,我們打開我們的串口助手查看串口輸出信息蹂析!
- 復(fù)位硬件舔示!查看我們的串口工具,此
hello_world
實(shí)現(xiàn)的功能是电抚,每10s重啟模塊惕稻!
五、開始搭建Eclipes
編譯器環(huán)境蝙叛;
- 注意:搭建
Eclipes
編譯器環(huán)境前俺祠,必須要確保你的電腦有Java
開發(fā)環(huán)境哦,請自行搭建java
開發(fā)環(huán)境借帘!還有對應(yīng)的是否為64
或者32
位系統(tǒng)蜘渣,否則會出現(xiàn)發(fā)現(xiàn)缺JRE.!
①肺然、確定下載的eclipes
是否為c/c++
類型蔫缸,從下圖看到的彈窗已經(jīng)是默認(rèn)把C/C++
為 default
;
②际起、導(dǎo)入工程拾碌,拷貝我們的剛剛的hello_world
目錄,這個和esp8266
的導(dǎo)入有點(diǎn)相似街望,但是最后選擇是跨平臺的Cross Gcc
校翔;
③、導(dǎo)入工程后它匕,需要為編譯器配置下編譯變量U谷凇;
增加一個是
IDF_PATH
的變量:
E:\Esp32Study\ESP32IDE\msys32\home\Administrator\esp-idf\
增加三個是
PATH
的變量豫柬,<font color=red>注意在原來的基礎(chǔ)上加告希,分號用英文的!烧给!
E:\Esp32Study\ESP32IDE\msys32\usr\bin\;
E:\Esp32Study\ESP32IDE\msys32\opt\xtensa-esp32-elf\bin;
E:\Esp32Study\ESP32IDE\msys32\mingw32\bin\;
④、為編譯器配置工程的編譯指令4〉铡;
第一個配置鼠標(biāo)右擊工程伯诬,找到
Make Target
的Creat...
, 之后我們新建我們的make all
命令盗似,如下:
第二個配置鼠標(biāo)右擊工程平项,找到
Make Target
的Creat...
, 之后我們新建我們的make flash
命令,如下:
關(guān)于為什么不配置
make menuconfig
命令? 此命令我發(fā)現(xiàn)配置了也不成功顯示那個藍(lán)色彈窗心赶,可能是需要cywin
的配置缺猛,也有可能是其他問題?所以弯汰,我這還是用shell
命令符來配置make menuconfig
咏闪,比較笨重摔吏! 希望已經(jīng)解決此問題的人,留言下据某,萬分感激J俊滤祖!
六、編譯代碼埂材;
- 雙擊
make all
汤求,僅僅編譯工程不燒錄,出現(xiàn)以下信息,說明編譯成功:
- 雙擊
make flash
竖独,編譯工程而且燒錄莹痢,出現(xiàn)以下信息格二,說明編譯成功顶猜!注意配置文件要正確的端口號痘括!
七纲菌、修改代碼,打印hello world
嚣潜;
- 打開工程的文件椅贱,發(fā)現(xiàn)報錯找不到函數(shù),莫急莫急计技,安裝如下操作:
首先我們先配置下整個工程的頭文件路徑垮媒,因?yàn)?code>SDK和編譯器代碼是分開的睡雇,所以手動指定路徑頭文件饮醇!
${IDF_PATH}/components/esp32/include
${IDF_PATH}/components/newlib/include
${IDF_PATH}/components/freertos/include
${IDF_PATH}/components/nvs_flash/include
${IDF_PATH}/components/driver/include
${IDF_PATH}/components/log/include
${IDF_PATH}/components/spi_flash/include
我們把
app_main()
修改如下驳阎,讓他不再重啟模塊!
void app_main() {
printf("Hello world!\n");
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("--------------------------------------------\n\r ");
printf("Hellow World , Esp32 !!\n\r ");
printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ", chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ?
"embedded" : "external");
printf("--------------------------------------------\n\r ");
fflush(stdout);
}
雙擊
make flash
編譯并且下載到esp32蜘腌,波特率115200
撮珠,復(fù)位上電看串口打咏鹈勺届!
本文為博主半顆心臟
辛苦敲打了3個小時免姿,未經(jīng)同意不得轉(zhuǎn)載胚膊,多謝合作想鹰!
ESP32學(xué)習(xí)之旅代碼匯總,歡迎
star
喻犁,實(shí)時收到最新的代碼:https://github.com/xuhongv/StudyInEsp32歡迎加群上車:434878850