1. 课程导论与开发环境搭建

UART(通用异步收发传输器)是嵌入式系统中最基础、最常用的串行通信协议之一。无论是调试信息输出、与传感器模块通信,还是与蓝牙/Wi-Fi 模块交互,UART 都是首选接口。本课程将从零开始,带领你掌握 STM32F103C8T6 裸机环境下 UART 的轮询与中断驱动开发。

1.1 课程目标与学习路径

通过本课程,你将实现以下核心能力:

  • 理解 UART 协议:帧格式、波特率、奇偶校验、停止位等核心概念。
  • 掌握 STM32 裸机开发:不使用 HAL/LL 库,直接操作寄存器完成 UART 配置。
  • 实现轮询模式:阻塞式发送与接收,适用于简单调试场景。
  • 实现中断驱动模式:非阻塞式收发,适用于实时性要求高的项目。
  • 构建可复用驱动:封装 UART 驱动模块,便于移植到其他 STM32 型号。
课程定位:本课程面向有一定 C 语言基础、了解单片机基本概念的开发者。如果你已经熟悉 Arduino 或 51 单片机,本课程将帮助你深入理解 STM32 的底层工作机制。

1.2 所需硬件清单

硬件名称 型号/规格 数量 用途
STM32 最小系统板 STM32F103C8T6(蓝色板) 1 主控芯片,运行 UART 程序
USB 转 TTL 模块 CH340G / CP2102 / FT232 1 连接 PC 与 STM32,实现串口通信
杜邦线 母对母,20cm 4 连接 STM32 与 USB 转 TTL 模块
Micro USB 数据线 标准安卓数据线 1 为 STM32 最小系统板供电
面包板(可选) 830 孔 1 方便搭建电路,避免飞线混乱
注意:STM32F103C8T6 的工作电压为 3.3V,而部分 USB 转 TTL 模块(如 FT232)默认输出 5V 电平。请确认你的模块支持 3.3V 电平切换,否则可能损坏 STM32 芯片。推荐使用 CH340G 模块,其 VCC 引脚可跳线选择 3.3V 或 5V。

1.3 硬件连接示意图

下图展示了 STM32F103C8T6 最小系统板与 USB 转 TTL 模块之间的标准连接方式。本课程使用 USART1(PA9-TX, PA10-RX)。

STM32 与 USB 转 TTL 模块连接图 STM32F103C8T6 与 USB 转 TTL 模块连接图 STM32F103C8T6 最小系统板 PA9 (TX) PA10 (RX) GND 3.3V USB 转 TTL 模块 (CH340G / CP2102) TX RX GND VCC (3.3V) TX → RX RX → TX GND → GND 3.3V → VCC ⚠ 交叉连接:STM32 的 TX 接模块的 RX,STM32 的 RX 接模块的 TX
连接口诀:TX 接 RX,RX 接 TX,GND 接 GND,VCC 接 3.3V。记住“交叉连接”原则,这是串口通信最常见的接线错误来源。

1.4 软件工具安装与配置

本课程使用以下两款核心软件工具。请按照步骤完成安装。

1.4.1 Keil MDK (μVision) 安装

  1. 下载安装包:访问 Keil 官网(www.keil.com),下载 MDK-ARM 最新版本(V5.38 或更新)。
  2. 运行安装程序:以管理员身份运行 mdk_xxx.exe,默认安装路径为 C:\Keil_v5。
  3. 安装器件支持包:打开 Keil,点击 Pack Installer,搜索 STM32F1,安装 Keil.STM32F1xx_DFP.2.4.0 或更新版本。
  4. 注册许可证:购买正版 License 或使用评估版(限制 32KB 代码大小,本课程代码远小于此限制)。
常见问题:安装完成后,如果编译时提示 Target not created 或找不到芯片,请检查 Pack Installer 中是否已成功安装 STM32F1 系列器件支持包。重启 Keil 后重试。

1.4.2 STM32CubeMX 安装

  1. 下载安装包:访问 ST 官网(www.st.com),搜索 STM32CubeMX,下载最新版本(V6.10 或更新)。
  2. 安装 Java 运行环境:STM32CubeMX 基于 Java,安装前请确保已安装 JRE 11 或更高版本。
  3. 运行安装程序:双击 SetupSTM32CubeMX.exe,选择安装路径(建议默认)。
  4. 安装固件包:打开 STM32CubeMX,点击 Help → Manage embedded software packages,勾选 STM32F1 系列,点击 Install Now。

1.4.3 串口调试助手

推荐使用以下任意一款串口调试工具,用于后续课程中验证 UART 通信:

工具名称 平台 特点
SSCOM (串口调试助手) Windows 轻量、稳定、支持 HEX/ASCII 收发
Putty Windows/Linux 支持串口和 SSH,功能全面
MobaXterm Windows 集成串口终端,支持多标签
screen / minicom Linux/macOS 命令行工具,适合开发者

1.5 开发环境验证

安装完成后,按照以下步骤验证环境是否正常工作:

  1. 打开 Keil MDK,新建一个空工程,选择芯片 STM32F103C8。
  2. 编写一个简单的 main 函数,例如让 PA0 引脚输出高低电平(点灯程序)。
  3. 编译工程,确认无错误、无警告。
  4. 连接硬件:将 STM32 最小系统板通过 USB 数据线连接电脑,安装驱动(CH340 需手动安装驱动)。
  5. 下载程序:使用 ST-Link 或串口 ISP 下载,确认 LED 闪烁。
验证成功标志:Keil 编译输出 0 Error(s), 0 Warning(s),且目标板 LED 按预期闪烁。此时开发环境搭建完成,可以进入下一章学习 UART 寄存器配置。

1.6 本章知识结构

下表总结了本章涉及的核心知识点及其在课程中的位置:

知识点 说明 后续章节关联
UART 协议基础 帧格式、波特率、电平标准 第2章:UART 协议详解
硬件连接 STM32 与 USB 转 TTL 模块接线 第3章:轮询模式收发
Keil MDK 配置 工程创建、编译、下载 贯穿全课程
STM32CubeMX 使用 时钟配置、引脚分配(本课程仅用于参考) 第4章:中断驱动开发
串口调试工具 数据收发验证 第3~10章实验验证