
之前在做一塊 STM32 控制板的時候調試上位機通信時發現一個很典型的現象用 USB 轉 TTL 線連接一切正常換成電腦主板自帶的 DB9 串口后卻完全收不到數據甚至把主板串口芯片燒掉過一次。排查到最后問題根源就在 RS232 電平 和 TTL 電平 的轉換上。很多剛接觸嵌入式的朋友對 RS232、TTL、UART、串口這幾個詞往往是一頭霧水。實際上它們描述的是不同維度的問題UART 是一種通信時序協議TTL 是數字芯片內部使用的邏輯電平標準而 RS232 則是一套完整的串行通信電氣標準。本文就從這里開始把 RS232 電平、RS232 串口接線、常用電平轉換電路、調試方法和工程坑點一次講透幫助大家少走彎路。1. RS232 是什么先理清 UART、RS232、TTL 的關系1.1 為什么初學者經常被這三個詞搞混我先說一個常見場景你在淘寶上買了一塊“USB 轉 RS232”小板然后在設備管理器中看到的是 CH340 或者 FTDI 芯片插上電腦后出現的是 COM 口。于是你自然地以為這個 COM 口輸出的一定就是 RS232 電平。但實際拆開外殼你會發現很多“USB 轉 RS232”小板其實只是 USB 轉 TTL只是把 DB9 接頭做成了 RS232 的外形內部是否有真正的 RS232 電平轉換電路是看不出來的。另外你去查閱單片機串口外設時又看到大量關于“UART”的講解它和 RS232 好像講的是同一件事可電平又不完全一致。這種混亂的根源在于UART、RS232、TTL 分別是協議層、電氣標準層、邏輯電平層的概念它們在設備中層層疊疊但并不是等價替換關系。1.2 三者的定義區分UART 是通用異步收發器它規定了數據按幀傳輸的時序一個起始位、5/6/7/8 個數據位、一個可選的校驗位、一個或多個停止位。它不關心信號電壓到底是多少伏只關心高低電平變化是否符合時序。RS232 串口通信中最常采用的底層協議就是 UART。TTL 電平是數字芯片內部使用的邏輯電平標準。常見的 5V TTL 系統中高電平為 2V 到 5V低電平為 0V 到 0.8V3.3V 系統中高電平則最高到 3.3V。它使用正邏輯用高電平表示邏輯 1低電平表示邏輯 0。RS232是 EIA美國電子工業協會制定的一套串行通信電氣標準全稱是 RS-232C 或 EIA-232。它除了定義電平范圍還定義了接口引腳、時序關系、機械連接方式等內容是 20 世紀中后期電腦與 Modem、鼠標、工業設備之間最常用的串行接口之一。簡單來說單片機內部通過 UART 外設把并行數據變成串行數據然后以 TTL 電平輸出如果要把信號發送到 RS232 標準的 DB9 接口就必須經過電平轉換芯片把 TTL 電平變換成 RS232 電平同時還要把 TX、RX 方向上的信號分別做邏輯反向。1.3 RS232 的典型應用場景現在雖然新電腦已經很少直接帶 DB9 串口但 RS232 在工業控制、儀器儀表、通信設備等領域依然活躍典型場景包括工控觸摸屏與 PLC、單片機控制器通信例如維綸通、昆侖通態觸摸屏的 COM 口。基恩士 KV 系列 PLC 與上位機通信。迪文串口屏、組態屏與主控板之間進行指令交互。老式數控機床、稱重儀表、UPS 監控接口。銀行 POS 機、醫療設備等對穩定性要求高的低速通信場合。在這些場景里RS232 電平標準仍然被作為工業設備之間的“通用語言”所以掌握 RS232 串口的電平定義、引腳含義和轉換電路是做嵌入式開發和工業通信調試的基礎功。2. RS232 電平到底是多少伏2.1 RS232 電平的電壓范圍標準RS232 標準規定的電平范圍如下信號邏輯狀態電壓范圍典型電壓發送端邏輯 0數據 05V ~ 15V12V發送端邏輯 1數據 1-5V ~ -15V-12V接收端邏輯 03V ~ 15V—接收端邏輯 1-3V ~ -15V—未定義區域—-3V ~ 3V—注意兩個關鍵點第一RS232 使用的是負邏輯。這和 TTL 恰好相反TTL 中高電平代表邏輯 1低電平代表邏輯 0而在 RS232 中正電壓12V 附近代表邏輯 0負電壓-12V 附近代表邏輯 1。第二RS232 接收端允許的電壓范圍比發送端寬從 3V 到 15V 都可以識別為邏輯 0從 -3V 到 -15V 都可以識別為邏輯 1。也就是說接收端有 2V 左右的噪聲容限這比 TTL 的噪聲容限大不少因此 RS232 在較長距離的工業通信中比裸 TTL 抗干擾能力更強。2.2 TTL 電平標準與 3.3V/5V 系統常見的 TTL 電平分為兩類5V TTL 系統邏輯 1高電平2V ~ 5V通常在輸出端約為 5V。邏輯 0低電平0V ~ 0.8V。3.3V CMOS/LVTTL 系統邏輯 1高電平2V ~ 3.3V。邏輯 0低電平0V ~ 0.8V。有了上面的對比你就會明白為什么單片機的 TX/RX 引腳不能直接接到 RS232 DB9 接口上RS232 空閑時輸出為 -12V 左右的邏輯 1而單片機引腳如果輸入負壓輕則導致內部 ESD 保護二極管導通重則燒毀引腳。RS232 的數據 0 是 12V 左右遠超 3.3V 或 5V 單片機引腳耐壓范圍直接連接可能損壞單片機。反過來單片機輸出的 TTL 高電平一般只有 3.3V 或 5V正電壓幅度達不到 RS232 接收端要求的 3V 以上倒還好但 TTL 低電平是 0VRS232 接收端會把它當成“未定義區域”不能可靠識別。所以在任何需要連接真實 RS232 設備的電路中電平轉換電路都是必須的而不是可選項。2.3 那 -12V 是從哪里來的很多初學者會問一個問題電腦主板上的串口怎么會有 -12V難道是主板上還有一個 -12V 電源嗎確實有。PC 主板的 PCI/ISA 電源總線上會提供 -12V 這一路電源但它的驅動能力非常弱電流一般只有幾百毫安甚至更小。而 RS232 需要的正是這種“正負雙電源”的環境。單獨靠單片機控制板上的 3.3V 或 5V 單電源是沒有負壓來源的所以才會用 MAX232 這類電荷泵芯片來產生 -12V 左右的電壓這也就是很多電平轉換芯片內部都內置“電荷泵”的原因。3. RS232 串口接口與引腳定義3.1 DB9 引腳的定義提到 RS232 串口很多人第一反應是那個梯形 DB9 插頭。DB9 分為公頭帶針和母頭帶孔兩種常見引腳定義如下引腳號信號名稱作用說明方向以 DTE 為準1DCDCarrier Detect 載波檢測輸入2RXDReceive Data 接收數據輸入3TXDTransmit Data 發送數據輸出4DTRData Terminal Ready 數據終端就緒輸出5GNDSignal Ground 信號地—6DSRData Set Ready 數據設備就緒輸入7RTSRequest To Send 請求發送輸出8CTSClear To Send 允許發送輸入9RIRing Indicator 振鈴指示輸入這 9 個引腳中真正用于最基本數據通信的只有 2RXD、3TXD、5GND三根。其他引腳用于 Modem 撥號、流控和鏈路檢測等擴展功能我們做普通的 RS232 串口通信時不一定全部要用。這里有個容易混淆的點DB9 公頭 2 腳是 RXD、3 腳是 TXD這是針對 DTE 設備例如電腦而言的。很多 DB9 面板上標注的 TXD 是指這個設備自己的發送腳而不是對面設備的發送腳。所以實際的串口調試中不要只看公頭還是母頭要看當前板上信號的功能定義。3.2 最簡單通信最少需要哪幾根線在設計 RS232 通信電路時如果只是收發數據不做硬件流控那么三線制接法就夠了設備 A 的 TXD 接設備 B 的 RXD。設備 A 的 RXD 接設備 B 的 TXD。兩邊的 GND 接 GND。也就是說信號線需要交叉連接。很多新手把兩塊開發板用“TXD 接 TXD、RXD 接 RXD”的排線直接連結果兩邊都收不到數據。這本質上就是因為沒有理解發送端必須連接對端的接收端。如果是兩個串口設備之間通過 DB9 直連通常要做成交叉線即“2 對 3、3 對 2、5 對 5”。市面上某些成品 DB9 線是直通線用于連接電腦與 Modem 這類 DTE-DCE 組合而用于電腦與單片機調試板如果單片機板子模擬 DTE時多半需要交叉線買線材時要特別留意。3.3 如何判斷你手上的串口是 TTL 還是 RS232拿到一塊板子或者一個轉接器時最穩妥的方法不是看絲印而是直接用萬用表測量串口的空閑狀態電壓如果 TXD/RXD 空閑時測量到 -5V ~ -12V 左右說明這是 RS232 電平。如果 TXD/RXD 空閑時測量到 3.3V 或 5V說明這是 TTL 電平。如果 TXD 上測量到 0V 且 RXD 上有 3.3V 之類的電壓要檢查芯片是否已經進入發送狀態或電路是否正常。一個 RS232 收發器在空閑時TXD 輸出端應該保持邏輯 1也就是負電壓。假如你測量 USB 轉 RS232 線的 TXD 在空閑時是 5V 或 3.3V那么這根線大概率只是 USB 轉 TTL并不能直接連接標準的 RS232 設備。4. 電平轉換電路TTL 和 RS232 之間到底怎么轉4.1 為什么不能直接連接我們已經知道TTL 高電平是 3.3V/5V低電平是 0VRS232 的邏輯 1 是負電壓邏輯 0 是正電壓。從數學上看TTL 高電平對應 RS232 邏輯 0正電壓TTL 低電平對應 RS232 邏輯 1負電平所以電平轉換不僅要做電平幅度的搬移還要做一個邏輯反向。如果用一句話描述電平轉換電路的作用就是把單片機的“3.3V/5V 正邏輯串口”變換為“±12V 負邏輯串口”同時保護兩端芯片不被對方的高壓或負壓損壞。4.2 方案一使用 MAX232/SP3232 專用收發芯片這是最推薦、也最穩定的方案。MAX232 系列芯片內置電荷泵只需要單電源供電就能產生正負兩路 RS232 電源電壓內部還集成了兩路發送器和兩路接收器可以同時處理 TX、RX 兩路信號。SP3232 是 MAX232 的低功耗替代型號兼容 3.3V 和 5V 供電也常用于便攜式設備。典型接線思路如下MAX232 引腳連接對象VCC5V部分型號支持 3.3V按芯片手冊GND電源地C1、C1-、C2、C2-4 只 0.1uF 電荷泵電容V電荷泵輸出正電壓通常接 0.1uF 電容到地V-電荷泵輸出負電壓通常接 0.1uF 電容到地T1IN單片機 TXDTTL 輸入T1OUTRS232 TXD 發送輸出R1INRS232 RXD 接收輸入R1OUT單片機 RXDTTL 輸出用 C 語言偽代碼描述一遍連接后的初始化流程// 單片機 UART 初始化示意以 STM32 HAL 庫為例具體參數按芯片型號調整 UART_HandleTypeDef huart1; void MX_USART1_UART_Init(void) { huart1.Instance USART1; huart1.Init.BaudRate 9600; huart1.Init.WordLength UART_WORDLENGTH_8B; huart1.Init.StopBits UART_STOPBITS_1; huart1.Init.Parity UART_PARITY_NONE; huart1.Init.Mode UART_MODE_TX_RX; huart1.Init.HwFlowCtl UART_HWCONTROL_NONE; huart1.Init.OverSampling UART_OVERSAMPLING_16; if (HAL_UART_Init(huart1) ! HAL_OK) { Error_Handler(); } }在這個例子中單片機這一側的 USART1_TX 就會輸出 TTL 電平的串口數據把它接到 MAX232 的 T1INMAX232 的 T1OUT 就輸出了 RS232 電平的串行數據可以連接外部 RS232 設備的 RXD。4.3 方案二三極管分立電平轉換電路在某些低成本、對功耗不敏感的板卡上也會看到用三極管實現電平轉換的電路。不過需要先說明三極管分立轉換電路要做到真正符合 RS232 標準的 ±12V 輸出必須有正負雙電源否則輸出往往只是“0V 到 5V”或“0V 到 12V”的單極性信號無法達到標準 RS232 接收端的負電平要求。一種常見思路是采用 NPN PNP 對管做發送端。以 TTL 輸入信號為例TTL 輸入為高電平時NPN 管導通、PNP 管截止輸出端被拉到接近負電源電壓。TTL 輸入為低電平時NPN 管截止、PNP 管導通輸出端被拉到接近正電源電壓。這個電路本質上是一個推挽反相器。它能實現 TTL 到 RS232 的邏輯反向和電平搬移前提是你手頭有 12V 和 -12V 兩路電源。實際產品如果想省掉 -12V 電源也可以用電荷泵產生負壓但那本質上又回到了 MAX232 的內部原理。我個人的建議是如果只是做實驗、學原理三極管電路可以幫助你理解電平轉換的本質但如果做產品或者調試穩定性要求較高的工業設備直接選 MAX232/SP3232/MAX3232 這類集成芯片外圍元器件少、一致性好、故障率低。4.4 方案三使用 USB 轉串口小板調試在開發階段最常用的是 USB 轉串口調試方案。這里要區分兩類產品一類是“USB 轉 TTL”常見主控是 CH340、CH341、CP2102、FT232。它輸出的是 TTL 電平不能直接連接 RS232 設備只能連接單片機或 TTL 接口外圍模塊。另一類是“USB 轉 RS232”常見做法是在 USB 轉 TTL 芯片后面再加一個 MAX232 之類的 RS232 收發器最終輸出到 DB9 座子。這類產品的 TXD 在空閑時測出來才是負電壓。很多調試器品牌還支持免驅動或自動安裝驅動但如果你使用 CH340/CH341 芯片第一次接上電腦后如果驅動沒自動裝上可以考慮到芯片官網下載對應系統的驅動FTDI 芯片也在官網提供全平臺驅動。Windows 下確認設備管理器中能看到 COM 口號后再用串口助手打開。5. RS232 通信過程與典型調試驗證5.1 一幀數據到底長什么樣RS232 串口通信采用異步幀格式常見配置是 8 個數據位、無校驗位、1 個停止位也就是常說的 8N1。一幀數據包括以下部分空閑狀態線路處于邏輯 1對應 RS232 電平就是負電壓。起始位線路跳變到邏輯 0對應正電壓表示一幀數據的開始。數據位從最低位 LSB 開始發送依次發送 8 個數據位。停止位線路回到邏輯 1持續 1 位時間表示一幀結束。你可以把 9600 波特率下的每一位時間估算為約 104us而 115200 波特率下每一位時間約為 8.68us。波特率越高每一位時間越短對線纜電容和收發器驅動能力的要求也越高。發送一個 ASCII 字符A十六進制 0x41二進制 01000001時線路上的電平變化順序為起始位(0) - 數據位:1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 停止位(1)注意數據位是從 LSB 開始發送所以0x41的最低位 1 最先出現在線上最高位 0 最后出現在線上。5.2 用示波器觀察 RS232 電平調試 RS232 電平是否正常強烈建議用示波器或者邏輯分析儀直接觀察 TXD 波形。下面是使用示波器時的判斷要點空閑時RS232 的 TXD 應該是 -3V 到 -15V 之間的負電壓。發送數據時起始位會跳變到 3V 到 15V 之間的正電壓。數據位中每一位正負電平持續時間應與波特率吻合。例如讓串口持續發送 0x55二進制 01010101示波器上應該看到方波頻率等于波特率的一半。如果發送 0x01則可以看到單個低電平脈沖后回到高電平的波形。如果示波器顯示 TXD 空閑時為 0V或者發送時最高只有 3.3V、最低只有 0V說明你的轉換電路并沒有真實輸出 RS232 電平標準基本可以判斷是 TTL 電平不是 RS232 電平。5.3 用 Python 腳本驗證串口收發在沒有邏輯分析儀的情況下也可以直接讓 PC 和單片機對發數據來驗證鏈路。下面是使用 Python PySerial 庫讀取串口數據的示例。# 文件路徑read_serial.py # 在電腦上執行前先安裝 pyserialpip install pyserial import serial import time # 根據實際設備管理器中的 COM 口號修改 ser serial.Serial( portCOM3, # Windows 示例Linux 下可能是 /dev/ttyUSB0 baudrate9600, bytesizeserial.EIGHTBITS, parityserial.PARITY_NONE, stopbitsserial.STOPBITS_ONE, timeout1 ) if ser.is_open: print(f串口 {ser.name} 已打開) # 發送一幀測試數據 ser.write(bHello RS232\r\n) # 讀取來自對端的數據 time.sleep(0.1) data ser.read(64) if data: print(收到數據:, data) else: print(未收到數據請檢查接線和電平轉換電路) ser.close()Linux 系統下也可以直接用命令行測試# 查看 USB 轉串口設備節點 ls /dev/ttyUSB* # 設置串口參數并發送數據 stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb echo -en Hello RS232\r\n /dev/ttyUSB0 # 讀取串口數據按 CtrlC 退出 cat /dev/ttyUSB0在 Windows 上則推薦使用常見的串口調試助手比如 SSCOM 工具。打開串口調試助手時需要注意以下幾點波特率、數據位、停止位、校驗位要和設備端完全一致。勾選“發送新行”時很多工具會在發送內容的最后自動添加\r\n也就是回車換行如果設備需要以回車作為命令結束標志這個功能很重要。接收區設置為文本顯示還是 Hex 顯示要根據設備協議決定如果收到的是非 ASCII 字節建議切換成 Hex 顯示更直觀。6. RS232 串口常見問題與排查思路本章整理我在調試 RS232 串口時遇到的高頻問題按“現象 - 原因 - 解決思路”的順序給出方便有經驗的開發者快速對照。問題現象常見原因解決思路電腦無法識別 USB 轉串口設備CH340/CH341/FTDI 等驅動未安裝或驅動版本不兼容進入設備管理器查看是否出現未知設備或黃色感嘆號到芯片官網下載對應系統驅動打開串口提示“端口被占用”或“無法打開”串口被其他軟件占用或者串口工具未關閉關閉正在使用該串口的軟件重新插拔轉接器必要時重啟電腦收發雙方波特率設置不同上位機與設備波特率不一致確認兩邊的波特率、數據位、停止位、校驗位完全一致包括是否有回車換行收不到任何數據TXD 和 RXD 接反沒有共地或沒有完成 TTL/RS232 電平轉換用交叉方式重新連接 TTL 信號檢查 MAX232 供電和電荷泵電容用萬用表確認 RS232 端空閑電壓為負電平收到亂碼波特率不匹配、接地不可靠、線纜過長、主時鐘偏差大降低波特率選擇更好的 USB 轉 TTL 芯片檢查雙方 GND 連接縮短線纜長度電平轉換芯片發燙電源接反、引腳短路、信號端口被高壓串入斷電后用萬用表測量 VCC 和 GND 是否短路檢查外部 RS232 線是否帶電反插設備剛連接時正常長時間運行后死機RS232 線路受外部干擾或地電位差影響產生過壓或浪涌增加 TVS 二極管使用屏蔽線保證通信地可靠必要時在 RS232 收發器前端增加隔離方案單片機 3.3V 與 5V 電平互連收不到數據邏輯電平不兼容例如 3.3V 芯片輸出高電平為 3.3V低于 5V TTL 高電平閾值使用電平轉換芯片或雙向電平轉換模塊完成 3.3V/5V 電壓匹配與某些工業觸摸屏/PLC 通信不穩定偶發超時只接了 TX、RX、GND但現場干擾大或設備要求硬件流控根據設備手冊確認是否需要 RTS/CTS 或 DTR/DSR嘗試波特率降到 9600檢查接線端子是否松動在排查 RS232 問題時建議遵循一個固定的順序先檢查電平是否真的是 RS232 電平再檢查 TX 與 RX 是否交叉接著確認參數是否一致最后才懷疑協議格式和程序邏輯。如果上來就懷疑代碼很容易在錯誤的方向上浪費時間。7. 接口防護與工程布線建議RS232 在電路板上看似簡單但一個沒有防護的 RS232 接口在工廠現場非常容易被浪涌打壞。下面給出幾條實用的工程建議。7.1 常用防護電路怎么加在 RS232 收發器芯片和 DB9 座子之間可以增加簡單的防護電路常見做法是在發送和接收線上分別串聯小阻值電阻例如 1kΩ 或 10Ω用于限制瞬間大電流具體阻值需要根據信號速率和芯片驅動能力折算。在信號線對地之間放置 TVS 二極管把浪涌電壓鉗位在芯片能承受的范圍內。在 DB9 外殼和信號地之間增加高壓電容或放電管減小靜電放電對內部電路的影響。注意很多 RS232 收發器芯片內部已經集成了 ESD 保護如果你的產品使用環境相對干凈比如實驗室、辦公設備就不需要額外做太多防護如果應用在電機、變頻器等工業現場還是建議增加 TVS 和良好的接地設計。7.2 線纜長度與布線選擇RS232 標準早期規定最大傳輸距離約 15 米左右這是在低波特率、良好接地和低噪聲環境下的參考值。實際應用中如果使用帶屏蔽的線纜并把屏蔽層單端接地在 9600 波特率下跑 15 米以內通常問題不大如果提高到 115200 波特率傳輸距離應大幅縮短否則會出現誤碼。布線時需要優先級最高的幾點兩設備之間的 GND 一定要連通這是所有電壓判斷的參考點。長距離布線應采用屏蔽雙絞線屏蔽層建議單端接地防止形成地環路。盡可能讓 RS232 信號線遠離電機驅動線、變頻器輸出線、大電流電纜。在 PCB 上RS232 收發器盡量靠近 DB9 座子保持 RS232 電平的走線盡量短。8. 最佳實踐與開發建議做過多塊帶 RS232 接口的板子之后我總結出下面幾條對實際開發最有用的實踐建議。第一設計板卡時把 TTL 測試點引出來。即使產品外殼上是 DB9 座也最好在 PCB 上預留 MAX232 前端的 TTL 信號測試點方便開發階段用邏輯分析儀直接抓取單片機發出的原始數據。如果通信異常先確認單片機側 TTL 數據是否正常再檢查 RS232 轉換后的信號就能快速判定問題出在哪一側。第二RS232 收發器芯片的電源去耦電容不要省。MAX232 類芯片內部電荷泵正常工作需要干凈的電源建議在 VCC 引腳附近放置 0.1uF 陶瓷電容并靠近芯片引腳布置。電荷泵電容的容值和耐壓也需要按芯片手冊選擇不要隨手把任意電容插上去。第三通信參數盡量做成可配置項。工業觸摸屏、PLC 或儀表設備往往要求不同的波特率或者校驗方式把波特率、數據位、校驗位寫死在程序里會給后續調試帶來很大麻煩。建議使用配置文件或參數存儲區保存通信參數方便現場修改。第四不要盲目追求高速率。RS232 主要用于可靠性優先的低速場景常見的 9600、19200 波特率適用于大多數工業設備。如果數據量很大、要求高吞吐不如改用 RS485 或者以太網方案。第五對收發數據要做超時處理。串口接收程序不能無限等待否則一旦對端掉線整個系統會卡在接收函數里。工業場景建議使用接收超時機制超時后主動重發或者上報鏈路異常。最后要特別注意供電問題。很多 RS232 轉接小板直接從 USB 口取電USB 口的 5V 電壓在長線或帶載能力不足時會出現跌落導致 MAX232 輸出幅度不足。調試時如果發現輸出電平比正常低可以換一個電源質量更好的 USB 口或者給轉接器單獨供電測試。9. 總結與下一步學習方向寫到這里RS232 電平、RS232 串口接口、TTL 與 RS232 的轉換電路、調試方法和工程注意事項已經全部梳理了一遍。重要的是要記住一個核心結論RS232 是一套完整的電氣標準它最大的特點就是負邏輯、正負雙極性電壓而單片機的 UART 默認輸出的是 TTL 電平兩者之間必須通過 MAX232 類芯片或獨立轉換電路完成電平搬移和邏輯反向。下一步可以從三個方向繼續深入如果做的是板級通信建議學習 RS485 與 RS232 的區別了解差分信號為什么更適合長距離、多節點通信。如果做的是工業設備互聯可以研究 Modbus RTU 協議在 RS232/RS485 上的應用這是工控領域最主流的串口協議之一。如果做的是單片機開發可以繼續學習 DMA 空閑中斷接收不定長數據把串口通信從輪詢收數升級為高效中斷驅動模式。RS232 雖然古老但掌握它的電平標準、通信時序和排查思路能幫助你在面對各種帶“串口”字樣的設備和模塊時少踩很多坑。當你下次在示波器上看到 TXD 空閑時穩穩停在負電壓附近就能一眼確認這才是真正工作在 RS232 電平下的通信鏈路。