STM32 OLED 贪吃蛇
基于 STM32F401、SSD1306 OLED、4×4 矩阵键盘与旋转编码器实现的嵌入式贪吃蛇游戏。
- STM32
- C
- OLED
- HAL
- Embedded

项目概述
这是一个运行在 STM32F401CCU6 微控制器上的嵌入式贪吃蛇项目。项目使用 128×64 SSD1306 OLED 显示游戏画面,通过 4×4 矩阵键盘或旋转编码器完成菜单选择和方向控制。
除贪吃蛇游戏外,程序还设计了统一的应用菜单,并集成按键测试页面,方便验证硬件输入和排查接线问题。

主要功能
- OLED 主菜单与多页面状态切换
- 16×7 网格贪吃蛇游戏区域
- 食物随机生成与闪烁显示
- 蛇身增长、分数统计和碰撞检测
- 禁止直接反向移动,避免误操作
- 支持游戏结束和胜利状态提示
- 4×4 矩阵键盘实时检测页面
- 支持旋转编码器选择菜单和按键确认
硬件组成
- STM32F401CCU6 微控制器
- 128×64 SSD1306 OLED 显示屏
- SPI 显示通信接口
- 4×4 矩阵键盘
- 旋转编码器与独立按键
- CAST 实验底板
软件实现
项目使用 C 语言与 STM32 HAL 库开发,并通过 Keil MDK 工程进行编译和调试。
主程序使用状态机管理菜单、按键测试、游戏和说明页面。输入扫描、游戏移动和画面刷新分别采用独立的时间间隔运行,避免使用阻塞式延时影响操作响应。
游戏逻辑将 128×64 屏幕划分为 8 像素单元格,通过数组保存蛇身坐标;食物位置由轻量级伪随机算法生成,并检查是否与蛇身重叠。
项目结构
main.c:系统初始化、应用状态机与页面切换snake.c:游戏逻辑、碰撞检测、计分与画面渲染ssd1306.c:OLED 显示驱动和基础绘图接口keypad.c:4×4 矩阵键盘扫描encoder.c:旋转编码器和独立按键检测
隐私与源码说明
公开源码前会移除测试阶段写入程序的个人信息,并整理构建产物和本地调试文件。网站仅展示经过筛选的项目说明和成品图片。