一、ESP32-S3 序列埠通信(Serial)實驗說明
在進行 ESP32-S3 開發時,「序列埠通信(Serial Communication)」是最基礎也最重要的核心功能之一。不論是新手入門還是進階專案開發,透過序列埠,我們都能實現以下關鍵應用:
查看程式執行狀態與系統邏輯
顯示感測器數據資料(如溫度、濕度、距離等)
接收電腦端輸入指令進行互動控制
程式除錯(Debug)與即時追蹤變數
與其他硬體裝置進行 UART 通訊
本篇教學將帶你使用 Arduino IDE,快速學會 ESP32-S3 的 Serial 序列埠通信技術。本範例可完美搭配米羅科技的 ESP32-S3 系列開發板。
二、什麼是序列埠通信(Serial / UART)?原理與常見用途
序列埠通信一般是指通用異步收發器(UART, Universal Asynchronous Receiver-Transmitter),是電子電路與微控制器(MCU)中最常見的非同步通訊方式。
1. UART 通訊原理:TX 與 RX 的橋樑
UART 主要是透過兩條信號線來傳輸數據:
TX 線(Transmit):負責發送數據。
RX 線(Receive):負責接收數據。
在兩台設備進行序列埠通訊連接時,必須採取「交叉連接」,即設備 A 的 TX 接到設備 B 的 RX,而設備 A 的 RX 接到設備 B 的 TX,如此才能正常收發訊號。
在序列埠通信開始之前,雙方的鮑率(Baud Rate)必須相同。 只有使用相同的鮑率,設備之間的通信才能進行。 常用的鮑率是 9600 和 115200。
▼ ESP32上的序列埠串口集成了USB 轉串口,因此它可以通過 USB 線與電腦通信。
2. 什麼是鮑率(Baud Rate)?
在序列埠通信開始之前,通訊雙方的鮑率(Baud Rate)設定必須完全一致。鮑率代表每秒傳輸的位元數,只有在相同波特率下,設備之間才能正確解析數據。在 ESP32-S3 開發中,最常用的標準鮑率為 9600 和 115200(本教學範例使用 115200)。
3. ESP32-S3 的 USB 轉串口功能
現代的 ESP32-S3 開發板晶片通常集成了 USB 轉串口(USB-to-Serial)功能,因此我們可以直接透過一條 Type-C USB 數據線連接電腦,進行資料傳輸與燒錄。
💡 ESP32-S3 序列埠的 5 大核心用途:
| 核心功能 | 實務應用說明 |
| Serial Monitor | 在 Arduino IDE 的「序列埠監控視窗」即時查看輸出訊息 |
| Debug 除錯 | 輸出變數數值、追蹤程式碼執行流程與邏輯漏洞 |
| 感測器資料輸出 | 將讀取到的溫濕度、光線、距離等類比/數位資料圖像化或文字化 |
| 接收使用者輸入 | 從電腦鍵盤發送控制指令給 ESP32-S3 開發板 |
| 外接 UART 通訊 | 與 Arduino、GPS 模組、藍牙模組、PLC 或其他工業設備連接 |
三、準備工具與推薦硬體
想順利完成本次的 ESP32-S3 序列埠通訊實驗,你需要準備以下硬體工具:
🛠️ 硬體需求:
ESP32-S3 開發板(推薦高配置版本)
USB Type-C 數據傳輸線(請確保具備數據傳輸功能,非純充電線)
電腦(已安裝 Arduino IDE)
🛒 高效能開發板推薦: ESP32-S3 開發板 N16R8 已焊排針 (16MB Flash / 8MB PSRAM) | 米羅科技官方賣場
四、Arduino IDE 環境配置與 ESP32-S3 USB CDC 重要設定
在開始上傳程式碼之前,請務必確認你的 Arduino IDE 開發環境設定正確,這會直接影響到序列埠能否順利列印出文字。
請打開 Arduino IDE,在上方選單點選「工具(Tools)」,並依照以下參數進行配置:
Board(開發板):選擇
ESP32S3 Dev ModuleUSB CDC On Boot:設定為
Enabled🌟(此點極為重要)
📢 米羅小學堂(關鍵備註): 如果你是使用開發板上標示為**「USB」**的原生 Type-C 接口連接電腦,務必將 USB CDC On Boot 啟用(Enabled),這樣一來,序列埠監控視窗(Serial Monitor)才能正確顯示 Serial.print() 的輸出訊息。 反之,若是使用標示為 COM/UART 的外接晶片接口,則需將此選項設定為USB CDC On Boot 設定為 Disabled。
五、如何開啟與使用 Arduino IDE 序列埠監控視窗?
當 ESP32-S3 透過 USB 線連接至電腦後,作業系統會將其識別為一個虛擬的 COM 連接埠(例如:COM3 或 COM5)。
確認在「工具」->「序列埠(Port)」中已勾選正確的 COM 號碼。
點擊 Arduino IDE 右上角的「序列埠監控視窗(Serial Monitor)」圖標(放大鏡或側邊欄圖示),即可開啟通訊視窗。
注意:如果開啟後沒有看到任何內容或出現亂碼,請先檢查監控視窗右下角的鮑率是否切換為
115200。
▼ 序列埠監控視窗界面如下。 如果打不開,請確保ESP32已經連接到電腦,在菜單欄“工具”中選擇正確的序列埠。
六、ESP32-S3 Serial 序列埠通信:3 大實用程式範例
完成環境配置後,接下來跟著米羅一起透過 3 個由淺入深的經典範例,實際測試 ESP32-S3 的通訊實力吧!請將以下程式碼複製到 Arduino IDE 中,並點擊「上傳」燒錄。
⚡ 範例 1:ESP32-S3 Serial 每秒定時輸出訊息
最基礎的測試程式,用來確認開發板與電腦的連線是否通暢。
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello ESP32-S3");
delay(1000);
}序列監控視窗預期效果:
Hello ESP32-S3
Hello ESP32-S3
Hello ESP32-S3
⚡ 範例 2:ESP32-S3 Serial 變數資料輸出(常用於除錯)
展示如何將程式中的變數數值即時列印出來,這是日後排除程式 Bug 的必學技巧。
int count = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("Count = ");
Serial.println(count);
count++;
delay(1000);
}
序列監控視窗預期效果:
Count = 0
Count = 1
Count = 2
⚡ 範例 3:ESP32-S3 Serial 雙向通訊:接收電腦輸入資料
這個範例展示了「雙向通訊」,ESP32-S3 會等待並讀取使用者從電腦鍵盤輸入的指令或文字。
String data;
void setup() {
Serial.begin(115200);
Serial.println("請輸入文字:");
}
void loop() {
if (Serial.available()) {
data = Serial.readStringUntil('\n');
Serial.print("你輸入的是:");
Serial.println(data);
}
}
七、Arduino Serial 常用核心函式庫統整
在編寫物聯網專案時,你常會用到以下 Serial 語法,建議可以加進你的常用筆記:
八、ESP32-S3 序列埠常見問題排除(FAQ)
Q1:在 Arduino IDE 找不到 COM Port(連接埠)怎麼辦?
排查 1:請確認使用的 Type-C 線是否具有「數據傳輸」功能,有些便宜的線材僅供充電。
排查 2:檢查電腦是否已安裝對應的 USB 轉序列埠驅動程式(如 CH340 或 CP210x,視板子晶片而定)。
排查 3:請確認開發板的
USB CDC On Boot參數已開啟。
Q2:開啟了序列埠監控視窗,卻完全沒有輸出內容?
解答:請再次確認您的 Arduino IDE 設定中,
USB CDC On Boot已經切換為Enabled,並重新燒錄一次程式。另外,可以按壓開發板上的「EN/RST」重置按鈕讓程式重新跑一次。
Q3:序列埠監控視窗裡顯示一堆看不懂的亂碼?
解答:這通常是因為「鮑率不匹配」引起的。請確認程式碼中
Serial.begin(115200);寫的分華與監控視窗右下角下拉選單選擇的115200 baud數字完全一致。
👉 上一篇教學:【ESP32-S3 教學】第一篇:最強 AI IoT 開發神器!ESP32-S3 N16R8 環境配置與點燈範例
👉 返回教學列表:米羅科技文創學院教學部落格
👉 下一篇推薦:Arduino 新手學習必讀經典 – 快速索引指南




