Arduino GFX developing for various color displays and various data bus interfaces Arduino_GFX

ESP32 1/5 已发布
moononournation 1108 Stars NOASSERTION BOM 完整度: 0/5 教程完整度: 0/5
Arduino GFX developing for various color displays and various data bus interfaces

项目简介

Arduino GFX开发多种彩色显示与数据总线接口。


Arduino_GFX 是一款专为 Arduino 生态设计的通用图形库,旨在解决开发者在使用不同品牌、不同接口的显示屏时,需要反复适配底层驱动和图形接口的痛点。该库从 Adafruit_GFX、LovyanGFX、TFT_eSPI 等多个成熟项目的基础上重构而来,整合了它们的优点,提供了一套统一、简洁的 API。

标签

项目特点

**超强兼容性**:支持 SPI、I2C、并行 8/16 位、RGB 接口、DPI 等多种数据总线,适配 30+ 种常见显示驱动芯片。
**跨平台支持**:可在 Arduino、ESP-IDF、PlatformIO 等环境下运行,覆盖 ESP32、STM32、Teensy、RP2040 等主流 MCU。
**丰富的图形功能**:内置画布、几何图形绘制、图像解码(BMP/JPEG/PNG)、Sprite 精灵、滚动、分屏等高级功能。
**完整的中文显示**:原生支持 UTF-8 编码,包含多种中文字体库,无需额外字库芯片。
**触摸屏集成**:支持电阻式与电容式触摸屏,提供校准与手势识别接口。
**高性能优化**:针对不同硬件平台做了 DMA 传输、双缓冲、帧率优化,部分平台可达 60fps 以上。

技术规格

支持显示驱动 ILI9341、ST7789、ST7735、SSD1351、GC9A01、HX8357、RA8875 等 30+ 种
数据总线接口 SPI(4线/3线)、I2C、并行 8-bit/16-bit、RGB 565/666、DPI
支持开发板 ESP32、ESP8266、STM32(F1/F4/H7)、Teensy 3.x/4.x、AVR、RP2040、SAMD
颜色深度 16-bit (RGB565)、18-bit (RGB666)、24-bit (RGB888)
最大分辨率 受限于 MCU 内存,理论支持 2048x2048 以上(需外部 RAM)
字体支持 内置 ASCII、GB2312、UTF-8 中文字库,支持自定义字体
图像格式 BMP(1/4/8/16/24/32-bit)、JPEG、PNG(部分平台)
触摸支持 4线电阻触摸、FT6x36/CST8xx 电容触摸
帧率 SPI 模式典型 20-40fps,RGB 并行模式可达 60fps+
库大小 基础编译约 40KB Flash,根据功能扩展

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP32 开发板 1 推荐 ESP32-WROOM-32,也可用其他支持板
2.8寸 ILI9341 TFT LCD 1 SPI 接口,240x320 分辨率
杜邦线(母对母) 10 用于连接主控与屏幕
USB 数据线 1 5V 供电,同时用于程序下载
触摸面板 1 若需触摸功能,选配 XPT2046 电阻触摸
面包板 1 方便搭建原型电路
电平转换模块 1 3.3V/5V 电平转换,保护屏幕

能力画像

**记忆与知识检索**:3/5 — 需要查阅芯片数据手册和库文档,但官方文档较完善。
**动手与操作**:3/5 — 涉及简单的接线和焊接,无复杂机械组装。
**编程与算法**:4/5 — 需要编写 Arduino 代码,理解图形绘制、坐标变换、事件处理等概念。
**设计与建模**:2/5 — 主要关注软件界面设计,无需 3D 建模。
**实验与调试**:4/5 — 需要调试显示时序、颜色校正、触摸校准,逻辑分析仪可辅助。
**协作与分享**:2/5 — 个人项目为主,但可通过 GitHub 提交 issue 或 PR 参与社区。
**学习与研究**:4/5 — 涉及嵌入式图形学、显示驱动原理、DMA 传输等知识。
**系统集成**:3/5 — 可将显示模块集成到智能家居、仪表盘、游戏机等更大系统中。

所需技能

基础 Arduino 编程(C/C++) 了解 SPI/I2C 等通信协议 能看懂电路原理图和接线图 熟悉 Arduino IDE 或 PlatformIO 环境 有简单的调试经验(串口打印、逻辑分析) 对图形学基础(像素、坐标、颜色空间)有基本认识

适用场景

制作智能手表或可穿戴设备的小尺寸 OLED 界面
为物联网传感器数据搭建实时仪表盘
开发复古游戏机或掌机(如 GameBoy 模拟器)
制作桌面天气站或时钟日历显示
为机器人或无人机添加第一人称视角(FPV)屏幕
学习嵌入式图形编程和显示驱动原理
改造老旧仪器,替换为彩色 LCD 显示