文章目錄標題
ESP8266引腳參考:應該使用哪個GPIO引腳?
本文是ESP8266 GPIO的指南:引腳圖,它們的功能以及使用方法。
ESP8266 12-E晶片隨附17個GPIO引腳。並非所有ESP8266開發板都公開了所有GPIO,不建議使用某些GPIO,另一些則具有非常特定的功能。
通過本指南,您將學習如何正確使用ESP8266 GPIO,並通過使用最適合您項目的引腳來避免數小時的沮喪。
ESP8266 12-E晶片引腳
下圖說明了ESP8266 12-E晶片的引腳排列。如果您在項目中使用ESP8266裸晶片,請使用此圖。
注意:並非所有開發板上都可以訪問所有GPIO,但是無論您使用的是什麼開發板,每個特定的GPIO都以相同的方式工作。如果您只是開始使用ESP8266,我們建議您閱讀指南:《 ESP8266入門》。
目前,使用ESP8266晶片的開發板種類繁多,可訪問的GPIO數量,大小,外形等也有所不同……
使用最廣泛的ESP8266開發板是ESP-01,ESP8266-12E NodeMCU Kit和Wemos D1 Mini。有關這些開發板的比較,請閱讀本指南:ESP8266 Wi-Fi開發板比較。
ESP8266-01引腳排列
如果您使用的是ESP8266-01開發板,則可以使用以下GPIO圖作為參考。
ESP8266 12-E NodeMCU套件
ESP8266 12-E NodeMCU套件的引腳圖如下所示。
Wemos D1 mini引腳排列
下圖顯示了WeMos D1 Mini的引腳排列。
ESP8266外設
ESP8266外設包括:
- 17個GPIO
- SPI
- I2C(在軟件上實現)
- I2S與DMA接口
- 串口
- 10位ADC
最佳使用引腳– ESP8266
有關ESP8266的重要注意事項是GPIO編號與板上封裝上的標籤不匹配。例如,D0對應於GPIO16,D1對應於GPIO5。
下表顯示了封裝上的標籤和GPIO編號之間的對應關係,以及在項目中最適合使用哪些引腳,以及需要謹慎使用的引腳。
以綠色突出顯示的引腳可以使用。黃色突出顯示的選項可以使用,但是您需要注意,因為它們可能主要在啟動時具有意外行為。不建議將紅色突出顯示的引腳用作輸入或輸出。
標籤 | 通用輸入輸出 | 輸入值 | 輸出量 | 筆記 |
D0 | GPIO16 | 沒有中斷 | 不支持PWM或I2C | 開機時高 曾經從深度睡眠中醒來 |
D1 | GPIO5 | 好 | 好 | 通常用作 SCL (I2C) |
D2 | GPIO4 | 好 | 好 | 通常用作 SDA (I2C) |
D3 | GPIO0 | 拉上來 | 好 | 連接到FLASH按鈕,如果拉至低電平則啟動失敗 |
D4 | GPIO2 | 拉上來 | 好 | 開機時高 連接到板載LED,如果拉至低電平則啟動失敗 |
D5 | GPIO14 | 好 | 好 | SPI (SCLK) |
D6 | GPIO12 | 好 | 好 | SPI (MISO) |
D7 | GPIO13 | 好 | 好 | SPI (MOSI) |
D8 | GPIO15 | 拉至GND | 好 | SPI(CS) 如果拉高則引導失敗 |
RX | GPIO3 | 好 | RX腳 | 開機時高 |
TX | GPIO1 | TX引腳 | 好 | 開機時高 引導時調試輸出,如果拉至低電平則引導失敗 |
A0 | ADC0 | 模擬輸入 | X |
繼續閱讀以了解ESP8266 GPIO及其功能的更詳細,更深入的分析。
GPIO連接到閃存晶片
GPIO6至GPIO11通常連接到ESP8266板上的flash晶片。因此,不建議使用這些引腳。
引導期間使用的引腳
如果某些引腳被拉低或拉高,可以防止ESP8266引導。下表顯示了BOOT上以下引腳的狀態:
- GPIO16:引腳在BOOT處為高電平
- GPIO0:如果拉低則啟動失敗
- GPIO2:引腳在啟動時為高電平,如果拉低則啟動失敗
- GPIO15:如果拉高則啟動失敗
- GPIO3:引腳在啟動時為高電平
- GPIO1:引腳在啟動時為高電平,如果拉低則啟動失敗
- GPIO10:引腳在BOOT處為高電平
- GPIO9:引腳在BOOT處為高電平
開機時為高電平
ESP8266開機時,有某些引腳會輸出3.3V信號。如果您將繼電器或其他外圍設備連接到這些GPIO,則可能會出現問題。以下GPIO在引導時輸出HIGH信號:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
此外,除GPIO5和GPIO4外,其他GPIO可以在引導時輸出低壓信號,如果將它們連接到晶體管或繼電器,則可能會出現問題。您可以閱讀這篇文章,研究啟動時每個GPIO的狀態和行為。
如果要操作繼電器,GPIO4和GPIO5是最安全的GPIO。
類比輸入
ESP8266僅在一個GPIO中支持模擬讀取。該GPIO稱為ADC0,通常在封裝上將其標記為A0。
如果使用ESP8266裸晶片,則ADC0引腳的最大輸入電壓為0至1V。如果您使用的是開發板(例如ESP8266 12-E NodeMCU kit),則電壓輸入範圍為0到3.3V,因為這些開發板包含一個內部分壓器。
您可以按照以下指南,了解如何在ESP8266中使用模擬讀數:
板載LED
大多數ESP8266開發板均具有內置LED。該LED通常連接到GPIO2。
該LED具有反向邏輯。發送高電平信號將其關閉,並發送低電平信號將其打開。
RST引腳
當RST引腳拉低時,ESP8266復位。這與按下板上的RESET按鈕相同。

GPIO0
將GPIO0拉低時,會將ESP8266設置為引導加載程序模式。這與按下板上的FLASH / BOOT按鈕相同。

GPIO16
GPIO16可用於將ESP8266從深度睡眠中喚醒。要將ESP8266從深度睡眠中喚醒,應將GPIO16連接到RST引腳。了解如何將ESP8266置於深度睡眠模式:
- ESP8266深度睡眠與Arduino IDE
- ESP8266 MicroPython深度睡眠
I2C
ESP8266沒有硬件I2C引腳,但可以用軟件實現。因此,您可以將任何GPIO用作I2C。通常,以下GPIO用作I2C引腳:
- GPIO5:SCL
- GPIO4:SDA
SPI
ESP8266中用作SPI的引腳為:
- GPIO12:MISO
- GPIO13:MOSI
- GPIO14:SCLK
- GPIO15:CS
PWM引腳
ESP8266允許所有I / O引腳上的軟件PWM:GPIO0至GPIO16。ESP8266上的PWM信號具有10位分辨率。了解如何使用ESP8266 PWM引腳:
- 具有Arduino IDE的ESP8266 PWM
- 具有MicroPython的ESP8266 PWM
中斷引腳
ESP8266支持除GPIO16之外的任何GPIO中的中斷。
- ESP8266具有Arduino IDE的中斷和計時器
總結
您也可以閱讀有關ESP32 GPIO的類似指南。
如果您開始使用ESP8266,我們可能會提供一些有趣的內容:
- 使用ESP8266的家庭自動化(課程)
- ESP8266入門
- ESP8266超過30個項目和教程
- ESP8266 Web服務器教程
- ESP32和ESP8266 –優缺點
謝謝閱讀。