ESP32在網(wǎng)上的資料很多,但問題也各式各樣。由于ESP32主要做wifi功能,因此對(duì)于以太網(wǎng)的資料也很少。相對(duì)應(yīng)的開發(fā)板也很少。
本人使用的是淘寶上購買的雨甄機(jī)電的帶網(wǎng)口的開發(fā)板(如下圖)安信可ESP-32S
參考資料主要以熱心博主《興趣使然_》的(5條消息) ESP32 單片機(jī)學(xué)習(xí)筆記 - 06 - (以太網(wǎng))Ethernet轉(zhuǎn)Wifi_esp32 以太網(wǎng)_興趣使然_的博客-CSDN博客這篇文章。
對(duì)于我一個(gè)小白來說,先得學(xué)習(xí)一些理論知識(shí)。
首先,以太網(wǎng)是局域網(wǎng)的通訊方式,以太網(wǎng)是具有TCP/IP協(xié)議,以太網(wǎng)常用接口有RJ45接口。
然后以太網(wǎng)的組成包括mac和phy芯片和RJ45的座子。然后一個(gè)芯片說支不支持網(wǎng)絡(luò)說的是是否具有內(nèi)部mac,不支持的就需要外接W5500等模塊(W5500就是把mac和phy組合到一個(gè)芯片上,然后利用SPI的方式和主板通信)。(mac和phy芯片中間有種通信方式叫RMII或MII,類似于SPI的東西,對(duì)于運(yùn)用來說,兩者主要區(qū)別就是一個(gè)的信號(hào)線多,一個(gè)的信號(hào)線少)。(理論知識(shí)太多了,我也看不到太懂,這就是我的理解)。
然后利用VS code 創(chuàng)建一個(gè)工程,創(chuàng)建工程之前需要先下載ESP的插件,下載方法網(wǎng)上很多。下載完畢后,打開vscode,此時(shí)快捷方式輸入ctrl+shift+p,打開工程示例。
打開工程示例后,根據(jù)左邊的目錄找到ethernet>>basic
選中目標(biāo)項(xiàng)目后進(jìn)行創(chuàng)建
此時(shí)項(xiàng)目創(chuàng)建完成(也可以使用idf工具創(chuàng)建,但代碼不好編輯查找)
由于vs code編譯較慢,因此,采用idf編譯,燒錄和觀察,采用vs cod來編輯代碼
此時(shí)打開idf工具,找到此項(xiàng)目(由于idf工具沒有l(wèi)s等命令,只有cd,因此需要記得自己項(xiàng)目保存的位置)
因?yàn)榈谝淮尉幾g較慢,因此我們先編譯一下(騙人的,第一次編譯慢,之后每次改配置編譯都慢),輸入編譯命令 idf.py build
等待編譯完成
編譯完成后,我們先將代碼燒錄進(jìn)入開發(fā)板,由于我采用的開發(fā)板是帶燒錄功能的,因此直接使用type C線接好就可以燒錄。輸入燒錄命令idf.py -p COM7 flash ?(COM7具體情況來輸入)
燒錄完成后,此時(shí)可以運(yùn)行一下觀察現(xiàn)象(一般情況下,此時(shí)運(yùn)行沒有問題,就算完成了,但沒有問題是基本不可能的,接坑才剛剛開始)
輸入運(yùn)行命令:idf.py -p COM7 monitor
此時(shí)觀察log
我們出現(xiàn)的現(xiàn)象是
從打印我們可以看出是內(nèi)存的問題,此時(shí)我們就需要修改配置了,修改方法有兩種
方法一:采用idf工具修改,輸入配置命令:idf.py menuconfig
輸入命令idf.py menuconfig打開配置界面,進(jìn)入Serial flasher config,按需將Flash size改為自己的大小。比較常用的兩個(gè)模組:安信可ESP-32S、樂鑫ESP32-WROOM-32,flash都是4MB。連續(xù)按Esc退出,按y保存。
此時(shí)再編譯燒錄,發(fā)現(xiàn)代碼已經(jīng)正常運(yùn)行,不需要再進(jìn)行修改(這就結(jié)束了嗎?哦嗚闊斯諾特)我們的代碼之所以能正常運(yùn)行,是因?yàn)橹耙呀?jīng)進(jìn)行了配置,正常情況下你可能會(huì)出現(xiàn)以下問題
- 不斷重啟
- 復(fù)位超時(shí)
- w550錯(cuò)誤
這些都是配置的問題,如果配置不對(duì),你是解決不了這些問題的。
接下來就看看我們的配置(idf工具自行配置,作者英文不好,也不擅長使用命令,配置方式還是配置命令到配置界面配置)
按照如下方式進(jìn)行配置:
不配置時(shí)鐘會(huì)導(dǎo)致不斷重啟,參考(5條消息) 66 ESP32 ethernet\basic實(shí)驗(yàn)記錄_esp32 以太網(wǎng)_Chasing_Chasing的博客-CSDN博客進(jìn)行時(shí)鐘配置
配置完畢后再編譯代碼燒錄觀察。如果不出意外就會(huì)出現(xiàn)正常打印到
Ethernet Started
看起來是正常了。但是等待一段時(shí)間后,后出現(xiàn)錯(cuò)誤打印,也可能是我哪里配置的原因,反正是正常可用了(如下):
此時(shí)是因?yàn)榫W(wǎng)線沒插或者網(wǎng)線壞了等原因,我們只需要接入正常網(wǎng)線即可出現(xiàn)如下打印,此時(shí),網(wǎng)口配置完成(如果還出現(xiàn)錯(cuò)誤,則需要自行排查了)
(什么是正常網(wǎng)線呢?一般情況下,未插入網(wǎng)線時(shí),RJ45亮橙(黃)色燈,當(dāng)網(wǎng)線正常時(shí)亮綠燈,可以數(shù)據(jù)交互時(shí)橙(黃)色燈閃爍,所以我們的正常情況為:綠燈亮起,橙(黃)色燈閃爍。
如何檢驗(yàn)是否正常工作,一般我們采用的都是ping的方式,也就是拿兩個(gè)網(wǎng)線將電腦和ESP32都接到同一個(gè)路由器,電腦上打開命令窗口,然后輸入指令ping 192.168.1.1查看連接情況,ping通了就可以證明配置完成且可用。
文章來源:http://www.zghlxwxcb.cn/news/detail-613049.html
此時(shí),配置完成。文章來源地址http://www.zghlxwxcb.cn/news/detail-613049.html
到了這里,關(guān)于ESP32以太網(wǎng)(ETH)環(huán)境和參數(shù)配置,基于內(nèi)部mac和外部PHY(LAN8720A)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!