Skip to content

Repository files navigation

ST7789_Drivers

本项目是一个基于 STM32CubeMX + STM32 HAL 的 ST7789 LCD 驱动示例工程,提供完整的基础初始化、颜色定义、绘图接口和文本显示功能,适合直接作为项目模板或进一步开发。

项目亮点

  • 支持 ST7789 240x320 分辨率显示屏
  • 使用 RGB565 颜色格式,内置常用颜色常量
  • 提供点、线、矩形、圆形、填充图形等绘图函数
  • 支持 ASCII 字符串显示和中文文本显示接口
  • 采用 CMake + Ninja 构建,便于在 VS Code 中维护和调试
  • 附带快速参考、API 文档和示例代码

功能概览

基础显示

  • 屏幕初始化
  • 清屏和区域填充
  • 显示窗口设置

绘图接口

  • 画点
  • 画任意直线
  • 画水平线、竖直线
  • 画空心矩形、实心矩形
  • 画空心圆、实心圆

文本接口

  • ASCII 字符显示
  • ASCII 字符串显示
  • 中文显示接口,支持 UTF-8 字符串

目录结构

硬件与参数

  • 显示控制器:ST7789
  • 屏幕分辨率:240 x 320
  • 色彩格式:RGB565
  • 工程平台:STM32F407
  • 开发方式:STM32CubeMX 生成工程 + CMake 构建

引脚配置

默认引脚配置

快速开始

1. 打开工程

用 VS Code 打开仓库根目录后,确保已安装 ARM GCC、CMake、Ninja 以及 STM32 相关工具链。

2. 配置和编译

工程已经提供 CMake Presets,可以直接使用 Debug 或 Release 构建。

VS Code 中常用流程:

  • 选择配置预设 Debug 或 Release
  • 执行构建任务或 CMake Build

命令行构建示例:

cmake --preset Debug
cmake --build --preset Debug

如果你要生成 Release 版本,把 Debug 改成 Release 即可。

3. 下载到开发板

编译完成后会生成 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 字体,以及中文显示接口。中文显示时建议使用符合项目字库格式的自定义字体数据,以确保编码和字模内容匹配。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages