1. 项目背景与工程目标万年历系统是嵌入式开发中极具代表性的综合实践项目,它融合了实时时钟(RTC)、人机交互(旋钮+按键)、图形显示(OLED)三大核心模块。本项目并非简单的功能堆砌,而是一次完整的嵌入式软件工程实践:从需求分析、架构设计、模块封装到业务逻辑实现,每一步都需遵循工业级开发规范。其核心目标是构建一个具备两种运行模式的可靠时间管理系统——普通模式下实时读取并显示当前时间;设置模式下通过旋钮精确调整年、月、日、时、分、秒六个维度,并将最终配置写入硬件RTC寄存器。这一目标背后隐含着对嵌入式系统本质的深刻理解:时间不是抽象概念,而是由晶体振荡器驱动、经分频链路传递、由计数器寄存器承载的物理量。RTC模块的可靠性直接取决于低速时钟源(LSE)的稳定性、寄存器访问的原子性、以及时间戳转换算法的严谨性。任何在struct tm与Unix时间戳之间转换的疏漏,都会导致日期跳变或闰年计算错误。因此,本项目的成功不仅在于功能实现,更在于是否建立了对时间底层机制的敬畏之心——这正是区分业余爱好者与专业嵌入式工程师的关键分水岭。2. 系统架构设计与模块划分面对万年历的多维度需求,采用“过度抽象”或“完全扁平化”的代码结构均不可取。前者会引入不必要的调度开销与调试复杂度,后者则导致模块间强耦合,丧失可维护性。本项目采用经过验证的分层模块化架构,严格遵循“高内聚、低耦合”原则,将系统划分为三个逻辑清晰的层次:2.1 硬件抽象层(HAL)该层直接操作STM32外设寄存器,但不涉及业务逻辑。它包含:-RTC驱动模块