找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6|回复: 0
收起左侧

开源STM32F103c8t6+ST7565 LCD12864图形加速器显示精灵、地图和卷轴,硬件翻转、...

[复制链接]
ID:73992 发表于 2026-7-6 00:46 | 显示全部楼层 |阅读模式
这是一款基于 STM32F103 的图形协处理器(PPU),它专为 128×64 单色点阵屏(ST7565驱动)提供硬件级图形加速。
该 PPU 通过 UART 串口接收上层命令,所有图形运算(地图绘制、精灵合成、卷轴滚动、镜像翻转)均在 STM32 内部完成,然后以 DMA 方式高速刷新 LCD。上层主控(无论是 51、AVR、ESP8266 还是另一块 STM32)只需发送简洁的指令,即可实现复杂界面。

二、硬件组成
  • 核心处理器:STM32F103C8T6(或其他 F103 系列),运行于 72MHz。
  • 显示模块:128×64 点阵 LCD,驱动芯片 ST7565R(兼容 ST7565P/ST7567)。
  • 通信接口:UART(57600bps),仅需 3 根线(TXD、RXD、GND)。
  • 外部引脚:STM32 与 LCD 的连接方式已在代码中注明(SPI 模式,PA2/PA3/PA4/PA5/PA7)。


三、功能特性
  • 地图系统:支持最大 4KB 地图数据(尺寸可自定义),可实现双向平滑卷轴。
  • 精灵(Sprite)系统:最多 32 个精灵,每个可独立设置尺寸(宽 8~32,高 1~32)、位置(16位有符号坐标,支持负值实现平滑进出)、水平/垂直翻转。
  • 地图回绕模式:可选开启,无缝循环滚动地图。
  • 渲染控制:提供“渲染”命令,上层可精确控制帧率,避免画面撕裂。
  • 显示控制:支持开关显示、对比度调节、镜像翻转、反色等。


四、通信协议(开放)
协议采用简单帧结构:0xAA 0x55 CMD LEN DATA[LEN] SUM 0x0D
所有命令码及数据格式均已在文档中详细说明,便于移植到任意主控。
主要命令包括:
  • 设置滚动偏移(0x01)
  • 更新瓦片/地图(0x02/0x03)
  • 创建/更新精灵(0x04,7字节头 + 图形数据)
  • 16位坐标位置更新(0x12)
  • 精灵翻转(0x0F)
  • 地图回绕开关(0x11)
  • 触发渲染(0x05)


五、性能表现
  • 全屏刷新(128×64)约 20~30 FPS(取决于串口速度)。
  • 精灵绘制经过裁剪优化,仅渲染可见部分。
  • DMA 加速 LCD 刷新,降低 CPU 占用。


六、开源资源
  • STM32 端源代码:包含 LCD 驱动、图形引擎、协议解析,Keil 工程可直接编译。
  • 通信协议手册(PDF):命令码、数据格式、示例。
  • 上位机示例(以 STC89C52 为例):演示了如何创建 16 个精灵、滚动地图,并实现帧同步(仅供调用参考)。
  • 硬件连接图:STM32 与 LCD 引脚对应关系。

示例中的 51 程序仅用于演示协议用法,如无 51 开发板,也可用串口助手手动发送命令测试。

七、注意事项(针对 51 用户)
若您使用 STC89C52 作为上位机,并希望通过串口下载程序,下载前请务必断开 STC 的 P3.0(RXD)与 STM32 的连接,否则 STM32 会占用串口导致下载超时。下载完成后再恢复连接即可。

八、应用场景
  • 游戏机
  • 嵌入式仪表盘 / 菜单界面
  • 低成本 HMI 交互
  • STM32 图形处理学习。

IMG20260705223857.jpg IMG20260705223941.jpg IMG20260705223954.jpg 多个移动精灵测试,16个8*8 和3个16*16坦克。这个项目我只有st7565s驱动的lcd12864  spi 接口。感兴趣的朋友,如果测试好了其他接口和芯片的驱动可以贴出来分享。 IMG20260706114950.jpg



文件清单如下
无标题.png
stm32ppu_lcd12864.7z (1.35 MB, 下载次数: 0)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表