1. 实验目标与系统架构定位
本实验聚焦于 STM32F103 系列微控制器在裸机环境下,通过 USART1 外设实现最基础的单向串行数据通信。核心目标是:单片机上电复位后,在不依赖中断、DMA 或高级协议栈的前提下,仅通过轮询方式,将一个固定的 ASCII 字符(’E’)持续发送至 PC 端串口调试助手。该设计刻意剥离了中断处理、缓冲管理、错误恢复等复杂机制,回归到外设寄存器操作的本质层面,为后续深入理解 USART 工作原理、中断驱动模型及 HAL 库封装逻辑奠定不可替代的硬件认知基础。
STM32F103 的 USART1 属于高级外设,其功能实现高度依赖于系统时钟树的精确配置。根据参考手册第 28 页总线映射表,USART1 挂载于 APB2 总线,而 GPIOA 同样挂载于 APB2 总线。这意味着两者共享同一时钟源域,其时钟使能必须在 RCC 寄存器中针对 APB2 进行统一操作。这种总线级耦合关系决定了任何 USART 初始化流程都必须首先完成 APB2 时钟使能,否则后续所有寄存器写入操作均无效——这是嵌入式开发中“时钟先行”原则在 STM32 平台上的具体体现,也是初学者最容易忽略、却导致外设完全无响应的根本性错误来源。
2. USART1 硬件连接与引脚复用原理
USART1 的物理信号通道由两个 GPIO 引脚承担:PA9(USART1_TX)和 PA10(USART1_RX)。在 STM32F103 的引脚复用(Alternate Function, AF)架构中,每个 GPIO 引脚均可配置为多种功能模式。PA9 和 PA10 的复用功能选择并非由软件直接写入某个“功能选择寄存器”,而是通过配置 GPIO 的输出模式寄存器(CRL/CRH)与复用功能寄存