分布式内容管理系统构建指南:从对象存储到CDN分发的完整实践
2026/7/17 3:49:46
本工程基于 STM32F10x 标准库开发,实现串口上位机指令控制静态共阳极数码管:
0~9、A~F字符,数码管实时显示对应数字 / 字母;表格
| 外设模块 | 引脚 | 功能描述 |
|---|---|---|
| 数码管段选 | PB8~PB15 | 输出 8 位共阳极段码 a~dp |
| 串口 1 TX | PA9 | 串口数据发送 |
| 串口 1 RX | PA10 | 串口数据接收 |
| 系统定时器 | SysTick | 提供 us 级延时 |
| 主控芯片 | STM32F103 系列 | 系统主频 72MHz |
工程分为 4 个核心文件,模块化解耦:
main.c:主逻辑,数码管循环刷新、串口指令解析处理;usart.c / usart.h:串口 1 初始化、中断接收、字符串发送驱动;smg.c / smg.h:数码管 GPIO 端口初始化驱动;SysTick.c:系统延时底层驱动,提供delay_us、delay_ms。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 初始化接口。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); }执行流程: