本项目是一个基于 STM32CubeMX + STM32 HAL 的 ST7789 LCD 驱动示例工程,提供完整的基础初始化、颜色定义、绘图接口和文本显示功能,适合直接作为项目模板或进一步开发。
- 支持 ST7789 240x320 分辨率显示屏
- 使用 RGB565 颜色格式,内置常用颜色常量
- 提供点、线、矩形、圆形、填充图形等绘图函数
- 支持 ASCII 字符串显示和中文文本显示接口
- 采用 CMake + Ninja 构建,便于在 VS Code 中维护和调试
- 附带快速参考、API 文档和示例代码
- 屏幕初始化
- 清屏和区域填充
- 显示窗口设置
- 画点
- 画任意直线
- 画水平线、竖直线
- 画空心矩形、实心矩形
- 画空心圆、实心圆
- ASCII 字符显示
- ASCII 字符串显示
- 中文显示接口,支持 UTF-8 字符串
- Core/Inc/st7789.h: 驱动头文件和接口声明
- Core/Src/st7789.c: ST7789 驱动实现
- Core/Inc/font.h: 字体结构定义
- Core/Src/font.c: 字体数据实现
- Core/Src/main.c: 示例入口,包含基础演示代码
- ST7789_API_Documentation.md: 详细 API 文档
- QUICK_REFERENCE.md: 快速参考卡
- ST7789_Usage_Example.c: 更多使用示例
- 显示控制器:ST7789
- 屏幕分辨率:240 x 320
- 色彩格式:RGB565
- 工程平台:STM32F407
- 开发方式:STM32CubeMX 生成工程 + CMake 构建
用 VS Code 打开仓库根目录后,确保已安装 ARM GCC、CMake、Ninja 以及 STM32 相关工具链。
工程已经提供 CMake Presets,可以直接使用 Debug 或 Release 构建。
VS Code 中常用流程:
- 选择配置预设
Debug或Release - 执行构建任务或 CMake Build
命令行构建示例:
cmake --preset Debug
cmake --build --preset Debug如果你要生成 Release 版本,把 Debug 改成 Release 即可。
编译完成后会生成 ELF 和 HEX 文件,可使用你常用的烧录工具下载到 STM32F407 开发板。
Core/Src/main.c 中已经包含一个时钟风格的演示界面,可直接烧录测试。
#include "st7789.h"
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
MX_TIM3_Init();
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); // 开启背光
ST7789_Init();
ST7789_FillScreen(BLACK);
while (1)
{
}
}ST7789_FillScreen(BLACK);
ST7789_DrawString(20, 20, "Hello ST7789", &afont12x6, CYAN, BLACK);
ST7789_DrawRect(20, 60, 120, 80, GREEN);
ST7789_FillCircle(180, 120, 30, RED);- BLACK
- WHITE
- RED
- GREEN
- BLUE
- YELLOW
- CYAN
- MAGENTA
- GRAY
工程中提供了多种 ASCII 字体,以及中文显示接口。中文显示时建议使用符合项目字库格式的自定义字体数据,以确保编码和字模内容匹配。
