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)。
连接口诀:TX 接 RX,RX 接 TX,GND 接 GND,VCC 接 3.3V。记住“交叉连接”原则,这是串口通信最常见的接线错误来源。
1.4 软件工具安装与配置
本课程使用以下两款核心软件工具。请按照步骤完成安装。
1.4.1 Keil MDK (μVision) 安装
- 下载安装包:访问 Keil 官网(www.keil.com),下载 MDK-ARM 最新版本(V5.38 或更新)。
- 运行安装程序:以管理员身份运行
mdk_xxx.exe,默认安装路径为C:\Keil_v5。 - 安装器件支持包:打开 Keil,点击 Pack Installer,搜索
STM32F1,安装Keil.STM32F1xx_DFP.2.4.0或更新版本。 - 注册许可证:购买正版 License 或使用评估版(限制 32KB 代码大小,本课程代码远小于此限制)。
常见问题:安装完成后,如果编译时提示
Target not created 或找不到芯片,请检查 Pack Installer 中是否已成功安装 STM32F1 系列器件支持包。重启 Keil 后重试。
1.4.2 STM32CubeMX 安装
- 下载安装包:访问 ST 官网(www.st.com),搜索
STM32CubeMX,下载最新版本(V6.10 或更新)。 - 安装 Java 运行环境:STM32CubeMX 基于 Java,安装前请确保已安装 JRE 11 或更高版本。
- 运行安装程序:双击
SetupSTM32CubeMX.exe,选择安装路径(建议默认)。 - 安装固件包:打开 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 开发环境验证
安装完成后,按照以下步骤验证环境是否正常工作:
- 打开 Keil MDK,新建一个空工程,选择芯片
STM32F103C8。 - 编写一个简单的 main 函数,例如让 PA0 引脚输出高低电平(点灯程序)。
- 编译工程,确认无错误、无警告。
- 连接硬件:将 STM32 最小系统板通过 USB 数据线连接电脑,安装驱动(CH340 需手动安装驱动)。
- 下载程序:使用 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章实验验证 |