一、项目概述1.1 项目功能本工程基于 STM32F10x 标准库开发,实现串口上位机指令控制静态共阳极数码管:硬件采用 GPIOB PB8~PB15 输出 8 位段码驱动单只数码管;USART1(PA9/PA10)9600 波特率中断接收字符指令;串口发送0~9、A~F字符,数码管实时显示对应数字 / 字母;SysTick 硬件定时器提供高精度微秒延时,保障时序稳定。1.2 硬件资源分配表格外设模块引脚功能描述数码管段选PB8~PB15输出 8 位共阳极段码 a~dp串口 1 TXPA9串口数据发送串口 1 RXPA10串口数据接收系统定时器SysTick提供 us 级延时主控芯片STM32F103 系列系统主频 72MHz1.3 硬件电路说明数码管类型:共阳极,公共端接 3.3V;IO 输出低电平点亮段,高电平熄灭;PB8~PB15 分别串联限流电阻后连接数码管 a~dp 段;串口 TTL 电平直接连接上位机串口工具,无需电平转换。二、文件分层架构说明工程分为 4 个核心文件,模块化解耦:main.c:主逻辑,数码管循环刷新、串口指令解析处理;usart.c / usart.h:串口 1 初始化、中断接收、字符串发送驱动;smg.c / smg.h:数码管 GPIO 端口初始化驱动;SysTick.c:系统延时底层驱动,提供delay_us、delay_ms。三、各文件代码详细解析3.1 smg.h 数码管硬件宏定义头文件c运行#ifndef __SMG_H #define __SMG_H #include "stm32f10x.h" #define SMG_PORT_RCC RCC_APB2Periph_GPIOB #define SMG_PORT GPIOB #define SMG_PIN GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15 void SMG_Init(void); #endifSMG_PORT_RCC:GPIOB 外设时钟掩码,初始化时开启端口供电;SMG_PORT:数码管输出端口 GPIOB;SMG_PIN:段选引脚集合 PB8~PB15;函数声明SMG_Init():数码管 GPIO 初始化接口。3.2 smg.c 数码管驱动c运行#include "smg.h" void SMG_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(SMG_PORT_RCC, ENABLE); GPIO_InitStructure.GPIO_Pin = SMG_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(SMG_PORT, GPIO_InitStructure); }执行流程:使能 GPIOB 外设时