← 返回作品列表

嵌入式系统 · 2026

STM32 OLED 贪吃蛇

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

  • STM32
  • C
  • OLED
  • HAL
  • Embedded
STM32 OLED 贪吃蛇项目封面

项目概述

这是一个运行在 STM32F401CCU6 微控制器上的嵌入式贪吃蛇项目。项目使用 128×64 SSD1306 OLED 显示游戏画面,通过 4×4 矩阵键盘或旋转编码器完成菜单选择和方向控制。

除贪吃蛇游戏外,程序还设计了统一的应用菜单,并集成按键测试页面,方便验证硬件输入和排查接线问题。

STM32 OLED 贪吃蛇成品展示

主要功能

  • 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:旋转编码器和独立按键检测

隐私与源码说明

公开源码前会移除测试阶段写入程序的个人信息,并整理构建产物和本地调试文件。网站仅展示经过筛选的项目说明和成品图片。