ESP32 的腳位配置是其最大優勢之一,也是最常見的混淆來源之一。由於重度多工、嚴格的開機模式依賴及敏感的類比行為,正確的腳位選擇對穩定運作至關重要。本文清楚組織每個主要腳位群組,幫助您避免衝突、防止開機失敗,並設計可靠的 ESP32 硬體。

了解 ESP32 腳位配置
ESP32 是一款強大且靈活的微控制器,廣泛應用於物聯網、自動化及智慧裝置。其進階能力來自高度多工的腳位排列系統,許多功能共用相同的物理腳位。這些包括數位輸入輸出、ADC通道、電容式觸控感測器、通訊匯流排、RTC領域腳位,以及用於SPI閃存與開機配置的內部連接。由於許多功能共用腳位,接線不當可能導致開機失敗、ADC 讀數雜訊或周邊設備被停用。
ESP32 DevKit 腳位配置

ESP32 開發板通常有 30 針與 38 針兩種版本,兩者核心功能相同,但可用的 GPIO 略有差異。
ESP32開發板上的2.1腳位群組
| 群組 | 說明 |
|---|---|
| 電源別針 | VIN(5 V),3.3 V 輸出,GND |
| 控制腳 | EN(重置)、IO0(開機模式) |
| GPIO 腳 | 數位輸入輸出與多工 |
| 類比腳 | ADC1 與 ADC2 通道 |
| 通訊針 | SPI、I2C、UART、I2S |
| 僅輸入腳位 | GPIO34–GPIO39 |
| 閃存保留針 | GPIO6–GPIO11 |
共同標頭配置
左側標題
• 英文、GPIO36–39、GPIO34–35
• GPIO32–33,25–27
• VIN、GND、3.3V
右側標頭
• GPIO0–23
• 綁帶銷(0、2、5、12、15)
了解實體佈局能更容易避免錯誤並有效規劃布線。
ESP32 GPIO 概述

ESP32 GPIO 因為內建 I/O 矩陣而具有彈性,讓 UART、SPI、I2C 和 PWM 等周邊設備幾乎可以映射到任何地方。GPIO 支援內建上拉/下拉電阻的數位輸入/輸出、邊緣觸發中斷,以及高速下可靠的切換。典型的連續驅動電流為12–16 mA(峰值最高可達~20–40 mA),因此馬達或繼電器需要外接驅動器。
僅輸入腳位
這些腳位無法驅動輸出,非常適合感測器和類比輸入:
| 釘 | 類型 | 推薦用途 |
|---|---|---|
| GPIO34 | 僅輸入 | ADC1 / 感測器 |
| GPIO35 | 僅輸入 | ADC1 |
| GPIO36(VP) | 僅輸入 | ADC1 / 霍爾感測器 |
| GPIO39(VN) | 僅輸入 | ADC1 |
安全的ESP32腳位使用與避免的腳位

並非所有 ESP32 腳位的表現都一樣。有些是安全的,而有些則會影響開機模式或與內部快閃記憶體相關。
安全別針(推薦給所有使用者)
| GPIO | 註釋 |
|---|---|
| 4, 13–19, 21–27, 32, 33 | 沒有靴子衝擊,非常適合大多數周邊產品 |
警告針腳(影響開機模式)
| GPIO | 開機功能 | 啟動時請避免 |
|---|---|---|
| GPIO0 | 快閃/開機模式 | 正常開機時保持高(輸入) |
| GPIO2 | 啟動電壓 | 一定是高 |
| GPIO5 | 可選開機模式 | 避免拉低 |
| GPIO12 | 閃光電壓模式 | 必須保持低調 |
| GPIO15 | SPI 模式 | 必須保持低調 |
這些腳位在正常運作時是安全的,但外部元件在重置時不得將它們拉到無效的邏輯電平。他們的詳細靴子角色詳見第9節。
限制銷(禁止使用)
| GPIO | 理由 |
|---|---|
| GPIO6–11 | 連接 SPI 快閃記憶體 |
使用這些可能會讓 ESP32 當機或當機。
ESP32 ADC 腳位

ESP32整合了兩個具不同作戰行為的SAR ADC單元:
• ADC1 — 所有感測器輸入皆可隨時使用並建議使用
• ADC2 — 與 Wi-Fi 子系統共用,當 Wi-Fi 啟用時即無法使用。
這是 ESP32 的主要限制之一,使得 ADC1 成為無線應用測量的可靠選擇。
| ADC 單元 | 頻道 | GPIO | 註釋 |
|---|---|---|---|
| ADC1 | 第0章至第7章 | GPIO32–39 | 感測器的最佳選擇 |
| ADC2 | 第0章–第9章 | 0、2、4、12–15、25–27 | Wi-Fi 期間無法使用 |
電壓範圍與精確度
ADC 預設的輸入範圍為 0–1.1 V,並可透過衰減擴展至約 3.3 V。兩台 ADC 單元皆為非線性,並可透過校正受益。類比效能會受到內部射頻活動的影響,因此將感測器線從天線外拉開並加裝簡單的遙控濾波器,能大幅提升穩定性。對於支援 Wi-Fi 的專案,必須在 ADC1 上放置類比感測器,以確保持續且無噪音的運作。
ESP32 DAC、PWM 與觸控腳位
ESP32 內建類比輸出與觸控感測器,簡化波形產生、調光、馬達控制及使用者介面。
DAC 概述

兩個 8 位元 DAC 通道輸出真正的類比電壓:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
常見用途包括簡單音訊、類比波形、LED 衰落及偏壓電壓。輸出範圍通常為 0–3.3 V。
PWM(LEDC)

LEDC 模組提供高解析度且靈活的 PWM:
• 16個頻道
• 最高 40 MHz 計時器基底
• 最高可達 20 位元解析度
• 完全可重新映射的GPIO
用於 LED 調光、馬達控制、伺服信號、音頻音調及一般調變。任何 GPIO 都可以透過 GPIO 矩陣承載 PWM 輸出。
觸控感應針腳

ESP32 的 10 個電容式觸控板可偵測手指接近度,對觸控按鈕、滑桿及喚醒觸發器非常實用。
| 觸控板 | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
這些感測器具備噪音過濾功能,且在低功耗尾流事件中表現良好。
ESP32 通訊腳
ESP32 包含豐富的通訊周邊設備,每個都能透過靈活的 GPIO 矩陣路由至多個腳位。這使得 I2C、SPI 和 UART 等介面幾乎可以被分配到任何地方,從而實現高度客製化的電路板佈局與周邊設備組合。
I2C(預設與自訂腳位)

ESP32 包含兩個 I2C 控制器,且在腳位選擇上有完全的彈性。雖然大多數開發板使用預設腳位,但 SDA 與 SCL 幾乎可重新分配至任何 GPIO。
| 訊號 | 預設 GPIO | 註釋 |
|---|---|---|
| SDA | GPIO21 | 完全可重新映射 |
| SCL | GPIO22 | 完全可重新映射 |
任何兩個數位 GPIO 都可以作為 SDA 和 SCL。支援標準模式(100 kHz)、快速模式(400 kHz)及快速模式加頻(視主機板而定為 1 MHz)。部分電路板支援內部上拉,但建議使用外部 4.7 kΩ 電阻以穩定通訊。這種彈性使 ESP32 非常適合需要多感測器或非傳統腳位布線的系統。
ESP32 包含多條 SPI 匯流排,使用者裝置可支援 HSPI 與 VSPI。兩者都支援透過 GPIO 矩陣重新映射,但大多數板子與函式庫使用以下預設的 VSPI 配置,以避免與內部快閃記憶體連線衝突:
預設 VSPI 映射
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI 通常被推薦用於顯示器、SD 卡及高速周邊設備。雖然腳位可重新映射,但使用預設值能確保最大相容性,減少時序問題,避免重複先前章節已涵蓋的限制。
UART(序列)

ESP32 包含三個 UART 控制器,具備彈性路由,允許任何 UART 腳位移動至幾乎任何 GPIO。
| UART | TX 針 | RX 腳 | 主要目的 |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | 閃爍、開機訊息、串列記錄 |
| UART1 | GPIO10 | GPIO9 | 可供使用者應用程式使用 |
| UART2 | GPIO17 | GPIO16 | 可供使用者應用程式使用 |
ESP32 深度睡眠與 RTC 腳位
ESP32 包含超低功耗(Ultra-Low-Power, ULP)子系統及專用的即時時脈(RTC)域,即使主 CPU 及周邊設備關閉,仍持續供電。此架構使得極低的功耗,常在微安培級,使ESP32適合長期電池供電應用。
深度睡眠允許晶片關閉主核心、大部分內部時脈,以及 Wi-Fi/藍牙無線電,同時仍透過 RTC 周邊監控選定的腳位與感測器。

ESP32 可透過多個獨立觸發器從深度睡眠中喚醒。每個尾流源都運作於RTC域內,該領域設計為以最低功耗保持活躍。
| 尾流類型 | GPIOs/註解 | |
|---|---|---|
| 外部 RTC GPIO | GPIO32、GPIO33、GPIO25、GPIO26、GPIO27 — 支援邊緣或電平喚醒 | |
| 電容式觸控板 | T0–T9 — 在深度睡眠時偵測手指接近或觸碰 | |
| 計時器喚醒 | RTC 計時器可在設定間隔後喚醒裝置 | |
| ULP 協同處理器 | (可選)自訂的低功耗程式碼可以在喚醒主 CPU | 之前執行感測器檢查。 |
| 這些腳位屬於 RTC 域,即使 CPU 和一般 GPIO 關閉,仍保持活躍。它們支援透過升降邊緣或簡單的電平偵測喚醒。常用於喚醒動作、磁性開關及低功率觸發器。 | ||
![]() | ||
| ESP32 使用多個綁帶腳位,在重置或開機時決定關鍵系統配置。這些腳位僅在開機時取樣,然後恢復正常 GPIO 功能。確保重置時不會被驅動到無效水準,有助於啟動行為的一致性。 | ||
| 綁針桌 | ||
| 釘 | 啟動角色 | 啟動時必須的州份 |
| GPIO0 | 選擇開機載入程式 / 閃存模式 | LOW = 進入閃光燈模式;HIGH = 正常啟動 |
| GPIO2 | 定義內部開機電壓電平 | 必須保持高中 |
| GPIO5 | SPI 開機設定 | 必須保持高中 |
| GPIO12 | 選擇閃光電壓(3.3 V / 1.8 V) | 必須保持低電位以維持 3.3 V 閃光燈 |
| GPIO15 | 在開機時設定 SPI 通訊模式 | 必須保持低 |
本節提供綁帶行為的權威參考。前幾節僅總結實際效果;在為自訂 PCB 指派腳位或整合按鈕與感測器時,請使用此表。
EN 腳(啟用/重置)
EN(啟用)腳位作為 ESP32 的主重置輸入。
EN 針腳行為:
• 拉取 EN LOW 會立即重置晶片。
• 將它放回高電平,會啟動內部迴路並重新啟動開機序列。
• 在開發板(例如 ESP32-DevKitC、NodeMCU-ESP32)上,EN 綁定於 USB 轉序列介面,以允許在刷機時自動重置。
ESP32 電源腳位

ESP32 對電源品質很敏感,因為它的 Wi-Fi 和藍牙無線電會產生短且高振幅的電流脈衝。穩定的電力傳輸確保開機可靠、減少電壓重置及穩定的無線效能。
電源針摘要
| 釘 | 電壓 | 使用 |
|---|---|---|
| 車輛識別碼 | 5 V 輸入 | 供電至車載調壓器(通常為AMS1117或ME6211),產生3.3 V |
| 3對3 | 3.3 V 輸出 | 來自機載 LDO 的穩定輸出;用於驅動外部低電流邏輯與感測器 |
| GND | — | 所有子系統的電氣參考與回傳路徑 |
推薦的 ESP32 腳位與接線範例
選擇合適的 ESP32 腳位是確保穩定運作、訊號路由乾淨,並避免與啟動或內部閃存連接衝突的必要條件。以下建議重點介紹最可靠且無衝突的常見功能腳位。
旗幟選擇
| 功能 | 最佳別針 | 註釋 |
|---|---|---|
| I2C | 21(SDA)、22(SCL) | 預設硬體測試組合;大多數板子都能用。 |
| SPI | 18(SCK)、19(MISO)、23(MOSI)、5(CS) | 這些腳位會乾淨俐落地映射到 VSPI,避免使用快閃記憶體連接腳位。 |
| UART | 16(RX)、17(德州) | 專用的 UART2 腳位,開機和除錯都很安全。 |
| PWM(LEDC) | 4、16–19、21–27、32–33 | 高彈性範圍;PWM 幾乎可以路由到任何 GPIO。 |
| ADC | 32–39(ADC1) | 即使 Wi-Fi 啟用,ADC1 頻道仍可使用。 |
結論
掌握 ESP32 腳位配置可以消除猜測,避免實際組裝中出現的許多問題,從雜訊的 ADC 讀數到無止盡的開機迴路。透過了解安全腳位、綁帶行為、電力完整性及深度睡眠路由,您可以設計出穩定、可預測且無線連線的電路。以上述針腳映射和指引為基礎,打造無憂的 ESP32 專案。
常見問題 [常見問題]
我該如何為 Freenove ESP32-S3 分組板設定 PlatformIO?
使用標準的 ESP32-S3 開發模組設定。在你的platformio.ini中,請補充:
[環境:ESP32S3]
Platform = espressif32
板 = ESP32-S3-DevKitc-1
Framework = Arduino(Arduino)
這與 Freenove 的腳位相符,允許正常編譯並透過 USB 上傳。
ESP32 同時能執行多少個周邊設備?
由於 GPIO 矩陣,ESP32 可以同時執行多個 I²C、SPI、UART、PWM 和 ADC 功能,只要避免使用受限腳位並控制在 CPU 與時序限制內。主要瓶頸是 Wi-Fi 和電源品質時的 ADC2,而不是腳位數。
為什麼我的 ESP32 在連接感測器或模組時會重啟?
意外的重置通常來自 Wi-Fi 突發、馬達或電源調節不良所造成的電壓下降。使用1 A或更高的5 V電源,加入10–100 μF的體積電容,並隔離雜訊負載,可防止電壓降壓。
我可以用 ESP32 的 3.3 V 腳位來供電給外接模組嗎?
可以,但僅限於低電流裝置(通常在300–500 mA以下,視機載LDO而定)。高耗電周邊設備如馬達、伺服機及大型LED燈條必須使用獨立電源供應器,以避免重置與過熱。
在使用多個周邊設備時,我該如何選擇最佳的 ESP32 腳位?
優先使用非綁帶腳位,避免使用GPIO6–11,ADC1上放置類比感測器,並盡可能使用預設的VSPI/I²C/UART腳位。這減少了衝突,確保所有周邊設備能協同運作,不會產生重新映射的問題。
