本章目標:
-
掌握 GPIO 的硬件原理、寄存器配置與典型驅動框架
-
深入理解 UART/USART 的幀格式、波特率配置、中斷與 DMA 驅動
-
通過實戰案例,將 GPIO 與 UART 結合,實現 AT 命令式外設控制
章節結構
GPIO 概述與硬件原理
GPIO 驅動實現:寄存器、中斷與去抖
UART/USART 原理與幀格式
UART 波特率與時鐘配置
UART 中斷與 DMA 驅動
綜合案例:通過 UART 控制 LED 與讀取按鍵
小結與 Q&A
1.1 GPIO 概述與硬件原理
1.1.1 GPIO 的定位與作用
-
定義:通用輸入/輸出(General-Purpose Input/Output)
-
功能:將處理器的數字端口配置為“輸入”或“輸出”,用于按鍵掃描、LED 驅動、繼電器控制、外部中斷等
-
特點:
-
最低速、最簡單的數字信號接口
-
支持拉 up/down 、電平觸發中斷、輸出開漏/推挽
-
1.1.2 GPIO 的硬件結構
以典型 STM32 GPIO 端口為例,每 port 包含 16 個 pin ,結構示意:
┌─────────────────────────────────┐│ GPIOx Controller ││ ┌──────┐ ┌──────┐ ┌──────┐ ││ │ MODER│ │ OTYPER││ PUPDR│ ... ││ └──────┘ └──────┘ └──────┘ ││ ┌─────────┐ ┌─────────┐ ││ │ IDR (IN) │ │ ODR (OUT)│ ││ └─────────┘ └─────────┘ │└─────────────────────────────────┘
-
MODER:模式寄存器,控制每個 pin 的輸入/輸出/復用/模擬
-
OTYPER:輸出類型,推挽(Push-Pull)或開漏(Open-Drain)
-
OSPEEDR:輸出速度,影響上升/下降沿速度
-
PUPDR:上下拉配置,設定輸入時的默認電平
-
IDR / ODR:輸入數據寄存器 / 輸出數據寄存器
-
EXTI:外部中斷控制器,與 AF(復用功能)協同實現中斷觸發
<