0x6A Logbook

0x6A Logbook
Shi6a的筆記本
未分類

UART 通訊協定完整教學:從原理到 STM32/ESP32 實作

前言:看起來最簡單的介面,卡住的人卻最多 UART 是嵌入式開發裡最老的東西之一。現在 SPI、I2C、RS485、CAN 百花齊放,但講到除錯輸出、GPS 模組、藍牙模組、工業感測器,最後還是得回到 UART。 很多初學者覺得 UART 就是「隨便接一接就能通」。我一開始也這樣想,結果被三件事卡了整整兩天:baud rate 誤差、中斷設計、資料遺失。它簡單的是協定本身,難的全都藏在細節裡。 所以這篇我打算從訊號層級一路講到 STM32 與 ESP32 的實戰程式碼,中間穿插我自己踩過的坑。 兩條線就能全雙工:T...

2026 年 5 月 24 日 0條評論 1683點熱度 0人點贊 shi6a 閱讀全文
程式開發

DMA 傳輸完全解析:從架構到實作,STM32/ESP32 的 Direct Memory Access 教學

先講一件我踩過的事:我以前寫 UART 收資料,用中斷一個 byte 一個 byte 接,接完再自己塞進緩衝。等到要同時跑 ADC 連續取樣跟通訊,CPU 就開始喘了 —— 明明時脈沒變、程式也沒寫錯,就是資料一多就掉資料。 問題不在演算法,在「搬資料」這件事本身就吃掉了 CPU 的每一分力氣。DMA 傳輸(Direct Memory Access,直接記憶體存取)要解決的就是這個:讓周邊設備自己去跟記憶體交換資料,CPU 只負責下指令跟收結果。 什麼是 DMA?為什麼需要它? 先看沒有 DMA 的時候,我們在做什...

2026 年 5 月 23 日 0條評論 1132點熱度 0人點贊 shi6a 閱讀全文
程式開發

Modbus 通訊協定完整教學:從 RTU 到 TCP,ESP32/STM32 實作

前言:1979 年的協定,為什麼現在還在跑 Modbus 是 Modicon 在 1979 年為 PLC 設計的協定,簡單到有點過時 —— 但它今天還活在你家附近的工廠、大樓機房與太陽能電廠裡。 原因很務實:它夠簡單、夠開放、實作成本夠低。一台變頻器只要宣稱支援 Modbus RTU,就能被任何 SCADA 系統讀到。這種「誰都做得到」的特性,比任何華麗的規格都長壽。 規矩只有一條:只能有一個 Master Master 負責發問,Slave 只負責回答 —— Slave 永遠不會主動開口。RTU 模式使用位址 1...

2026 年 5 月 22 日 0條評論 1506點熱度 0人點贊 shi6a 閱讀全文
程式開發

FIFO 完全解析:結構、空滿判斷、深度計算與跨時域設計

什麼是 FIFO? 先講最白話的版本:FIFO 就是一個排隊用的緩衝區。東西從後面排進去、從前面拿出來,誰先到誰先被服務 —— First-In-First-Out,中文就叫先進先出。 聽起來沒什麼了不起,但嵌入式世界幾乎每個角落都有它:UART 收進來的資料、SPI 要送出去的佇列、DMA 搬資料的中繼站,還有兩個不同時鐘域之間的資料交換(Clock Domain Crossing, CDC)。少了 FIFO,這些事情全部得靠 CPU 硬扛。 這篇我想從頭把四件事講清楚:結構長什麼樣、空跟滿怎麼判斷、深度要開多大...

2026 年 5 月 21 日 0條評論 3439點熱度 0人點贊 shi6a 閱讀全文
程式開發

PID 演算法完整教學:從比例積分微分控制到 ESP32 實作

前言:PID 是那種「每個人都用過,但很少人說得清楚」的東西 你做馬達調速、恆溫控制、電池充電、平衡車,最後都會走到同一條路:量測實際值,跟目標比,然後修正輸出。這個循環就是回授控制,而 PID 是它最泛用的一種形式。 它紅了幾十年不是因為數學漂亮,而是因為三個參數就能涵蓋大多數系統,而且不需要你精確知道系統模型。 PID 迴路長什麼樣 連續形式的公式如下: u(t) = Kp × e(t) + Ki × ∫e(t)dt + Kd × de(t)/dt 但 MCU 上跑的是離散版本,每一項都要換成「取樣點之間」的算...

2026 年 5 月 21 日 0條評論 1563點熱度 0人點贊 shi6a 閱讀全文
程式開發

PCB 去藕半徑完全解析:退耦電容擺放距離與電源完整性設計

前言:去耦半徑不是玄學,是「迴路面積」的工程問題 每個學 PCB Layout 的人都聽過這句話:「0.1 µF 要貼著 IC 腳放」。但為什麼?貼多近才算近?放遠一點真的會出事嗎? 這些問題的答案不是靠經驗法則的口耳相傳,而是一個很具體的物理量:迴路電感。電容離 IC 越遠,電流繞的那一圈就越大,電感就跟著變大 —— 而電感一大,這顆電容在高頻就等於不存在。 去耦半徑的本質:迴路面積 IC 在切換瞬間需要一股電流,這股電流從電容出發、經走線進 IC、再從 GND 繞回電容 —— 這一個圈就是迴路。圈越大,電感越大...

2026 年 5 月 21 日 0條評論 3119點熱度 0人點贊 shi6a 閱讀全文
自動化技巧

Boost 升壓電路完整教學:從升壓轉換器原理到鋰電池 5V 輸出設計

我最早接觸切換式電源時,是先學會了 Buck,然後很自然地以為「Boost 就是把 Buck 反過來接」。結果第一次自己做鋰電池升 5V 的板子,燒掉兩顆 MT3608 才搞懂:Boost 跟 Buck 不只是方向相反的同一件事,它的麻煩點完全不一樣。 Boost(升壓轉換器、Step-Up Converter)的任務很單純 —— 把比較低的輸入電壓推到比較高的輸出電壓,最經典的就是把鋰電池的 3.7V 升到 5V 餵 USB 裝置。但它付出的代價也很明確:輸入電流比輸出電流大、輸出漣波比較醜、空載的時候還會偷偷飄...

2026 年 5 月 21 日 0條評論 3479點熱度 0人點贊 shi6a 閱讀全文
自動化技巧

Buck 降壓電路完整教學:從切換式電源原理到 ESP32 電源設計實作

什麼是 Buck 降壓電路? 先講一句話版本:Buck 就是拿開關把輸入電壓切碎,再用電感跟電容把它拼回一個比較低的電壓。Buck 降壓電路(也稱降壓轉換器、Step-Down Converter)是嵌入式系統中最核心的電源架構 —— 從 Arduino、ESP32 到 STM32 開發板,板子上那顆黑色電感配著電容濾波的電路,十之八九就是 Buck Converter。 我自己第一次拆電源模組時最納悶的是:輸入明明 12V,為什麼過了一顆電感、一顆二極體,輸出就乖乖變成 3.3V?後來才想通,重點不在「降」這個字...

2026 年 5 月 21 日 0條評論 2133點熱度 0人點贊 shi6a 閱讀全文
自動化技巧

RS485 通訊協定完整教學:從硬體接線到 ESP32/STM32 實作

前言:工業現場為什麼還在用 RS485 RS485(正式名稱 TIA-485)由 EIA 定義,是一套差動串列通訊標準。它不新,但工廠、大樓機房、太陽能電廠到現在都還在用,原因只有一個:它很耐操。 兩條絞線拉 1200 公尺還能跑,雜訊同時灌進兩條線也不會影響判讀,一條匯流排可以掛到 32 個節點。這些特性讓它成為 Modbus RTU 等工業協定的標準實體層。 它靠什麼撐過惡劣環境 關鍵在「差動訊號」:邏輯不是看某一條線對地的電壓,而是看 A、B 兩條線的差值。 外界雜訊會同時耦合到 A 與 B,兩條線一起被抬高...

2026 年 5 月 21 日 0條評論 2333點熱度 0人點贊 shi6a 閱讀全文
自動化技巧

ESP32 I2C 通訊實戰:連接 BME280 溫濕度氣壓感測器

前言:兩條線,接一堆感測器 I2C 是 1982 年 Philips(現在的 NXP)發明的協定,目標只有一個:用最少的引腳完成裝置間通訊。它做到了 —— 兩條線(SDA + SCL)就能掛一整排感測器。 但它的規則比 UART、SPI 都細:Start 與 Stop 定義在「SCL 高電位時 SDA 的變化」,資料採樣在上升緣、變化在下降緣,而且每一個 byte 後面都要跟一個 ACK。搞懂這幾件事,你的 I2C 就不會再出現「掃不到裝置」的鬼故事。 兩條線與五個階段 訊號線 全名 說明 SDA Serial D...

2026 年 5 月 21 日 0條評論 1109點熱度 0人點贊 shi6a 閱讀全文
12345

近期文章

  • USLink 水下通訊模組(中):OOK 軟體設計與除錯歷程
  • USLink 水下通訊模組(上):項目發想與電路設計
  • ESP32 伺服馬達 SG90 控制完整教學:PWM 脈衝控制、LEDC 多軸同步、平滑運動與梯形加減速
  • ESP32 SD 卡讀寫完整教學:SPI 模式、SDMMC 4-bit 初始化序列、FAT32 檔案系統與 Data Logging
  • ESP32 藍牙傳統 SPP(Serial Port Profile)完整教學:BT Classic 通訊、RFCOMM 框架、主從架構與 HC-05 相容

近期留言

尚無留言可供顯示。

彙整

  • 2026 年 9 月
  • 2026 年 6 月
  • 2026 年 5 月

分類

  • 未分類
  • 程式開發
  • 自動化技巧

COPYRIGHT © 2026 0x6A Logbook. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang