LCD

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


基础知识

Liquid Crystal Display,简称 LCD,是一种利用液晶分子控制光线通过与否来显示图像的平面面板。其核心在于驱动电路接收来自处理器(如MCU、MPU)的图像数据,并通过特定的物理接口将其转换为控制每个像素点所需的电压。

LCD驱动包括以下几个基本要素:

  1. LCD面板:显示图像的物理界面,由大量的像素点矩阵构成。

  2. 驱动IC:面板的关键芯片,负责接收主机发送的图像数据与指令,并生成精确的电压来控制液晶偏转。

  3. 接口:连接主控处理器与LCD驱动IC的物理通道和通信协议,负责传输图像数据、控制指令和时钟信号。

  4. 背光:为被动发光的LCD提供光源的组件,通常需要独立的电源驱动。

LCD驱动流程概述

LCD驱动流程是指主控处理器通过特定接口向LCD驱动IC发送图像数据和控制信号,最终在屏幕上点亮像素的过程。这个过程的核心在于接口协议的时序交互,确保数据能够被驱动IC准确接收并锁存。

LCD的驱动流程详细步骤

  1. 初始化:主控处理器向LCD驱动IC发送一系列指令,配置其工作模式,如颜色深度、扫描方向等。

  2. 帧数据传输:主控处理器将帧缓存中的图像数据通过数据线发送,驱动IC接收数据并将其存储到内部的GRAM中。

  3. 行/像素驱动:驱动IC将GRAM中的数据按行取出,并转换为对应的模拟电压,施加到相应的行和列电极上,控制每个像素的透光率。

  4. 图像刷新:当一帧图像完全显示后,驱动IC等待下一帧数据的到来。对于动态画面,此过程以固定的刷新率循环进行。

LCD驱动常用接口模式

SPI接口

SPI接口是驱动中小型LCD屏的常用串行接口,以其线路简单、协议成熟而广泛应用。根据数据线方向可分为I型(双向)和II型(独立输入输出)。

SPI 模式

数据线配置

关键特征

3-Line SPI I

SCLK, CS, SDA(双向)

最省引脚,D/CX信号通过指令模拟

4-Line SPI I

SCLK, CS, SDA(双向), D/CX

最常用,有独立D/CX线,协议直观

3-Line SPI II

SCLK, CS, SDA(输入), SDO(输出)

数据线独立,支持读状态和更高时钟

4-Line SPI II

SCLK, CS, SDA(输入), SDO(输出), D/CX

全功能SPI,兼具独立数据线和D/CX

2 Data Lane SPI

SCLK, CS, D/CX, SDA0, SDA1

双数据线并行,传输速率翻倍

3-Line SPI I (双向数据线)

  • 线路配置:SCLK(时钟)、CS(片选)、SDA(双向数据线)

  • 工作原理:通过单一的SDA线进行双向数据传输。命令/数据选择(D/CX)通过发送特定的指令字节来模拟,而非使用独立的物理引脚。

  • 应用场景:最节省引脚的模式,适合对成本极其敏感、MCU引脚资源非常紧张的应用。

4-Line SPI I(双向数据线)

  • 线路配置:SCLK、CS、SDA(双向数据线)、D/CX(命令/数据选择)

  • 工作原理:使用独立的D/CX引脚来直接区分当前传输的是命令(低电平)还是数据(高电平),协议简单直观,无需模拟。

  • 应用场景:最常用、最标准的SPI LCD驱动方式,在引脚资源和使用便利性间取得良好平衡。

3-Line SPI II(独立输入输出)

  • 线路配置:SCLK、CS、SDA(数据输入)、SDO(数据输出)

  • 工作原理:数据输入和输出分离,支持全双工通信。命令/数据选择仍需要通过指令模拟。

  • 应用场景:需要读取LCD状态寄存器或显存数据的应用,由于输入输出隔离,可支持更高的通信时钟频率。

4-Line SPI II (独立输入输出)

  • 线路配置:SCLK、CS、SDA(数据输入)、SDO(数据输出)、D/CX

  • 工作原理:结合了独立数据线和独立D/CX信号的双重优势,既能高速读写,又具有清晰简单的协议。

  • 应用场景:高性能SPI应用,需要频繁读取显示状态或进行高速双向通信的场合。

2 Data Lane SPI (双数据线SPI)

  • 线路配置:SCLK、CS、D/CX、SDA0、SDA1(双数据线)

  • 工作原理:两条数据线并行传输数据,在相同时钟频率下实现近乎双倍的数据传输率。

  • 应用场景:需要较高刷新率的中分辨率屏幕,在保持SPI接口简单性的同时有效提升带宽。

SPI接口通用特点

  • 优点:引脚占用少,协议简单,成本低廉,几乎所有MCU都原生支持。

  • 缺点:传输带宽有限,通常适用于分辨率较低(如QVGA及以下)的屏幕。

  • 开发要点:需仔细阅读驱动IC数据手册,正确配置接口模式。

MCU接口

  1. 基本概念:一种面向控制的并行接口,因早期在微控制器单元中广泛应用而得名。它直接将驱动IC视为一个带显存的外设。

  2. 工作原理:

    • 8080模式:基于Intel 8080总线时序,控制引脚包括写使能、读使能、命令/数据选择。

    • 6800模式:基于Motorola 6800总线时序,使用使能信号和读写信号进行控制。

    • 数据传输:通过8位、16位或18位的并行数据总线进行。

  3. 优点:

    • 接口简单,易于在低端MCU上实现。

    • 无需专用视频控制器,成本低。

    • 在显示静态图像时功耗较低。

  4. 缺点:

    • 并行总线占用IO口多。

    • 传输速率有限,通常用于中小尺寸分辨率较低的屏幕。

RGB接口

  1. 基本概念:一种直接传输像素数据的并行接口。它模拟了显示器标准的信号时序,将每个像素的RGB数据、行场同步信号和时钟直接送给驱动IC。

  2. 工作原理:

    • 主控端通常需要专用的LCD控制器。

    • 数据线包括:RGB各6/8位数据线、像素时钟、行同步、场同步。

    • 数据在像素时钟的驱动下连续传输,无需等待应答。

  3. 优点:

    • 传输速率高,支持大尺寸和高分辨率的屏幕。

    • 显示动态画面流畅,CPU负担小。

  4. 缺点:

    • 需要大量的数据线,布线复杂。

    • 对时序要求严格。

MIPI DSI接口

  1. 基本概念:由MIPI联盟制定的串行显示接口。它采用差分信号传输,将数据和时钟打包成数据包进行高速串行通信。

  2. 工作原理:

    • 采用1对时钟线和1~4对数据线。

    • 传输的数据是打包后的指令和视频流数据包。

    • 支持高速模式和低功耗模式,在不需要刷新显示时可以切换到低功耗模式以节省电量。

  3. 优点:

    • 线数少,布线简单,抗干扰能力强。

    • 传输速率极高,支持超高分辨率和高刷新率。

    • 功耗控制优秀。

  4. 缺点:

    • 协议复杂,开发调试难度较大。

    • 通常需要主控芯片原生支持。

接口选择与应用场景说明

  1. SPI 接口:适用于引脚资源紧张、显示内容相对简单且屏幕尺寸较小的设备,如智能手表、小型物联网设备显示屏、便携式仪表的单色或低色彩深度屏幕。

  2. MCU接口:适用于计算能力有限、显示内容相对简单的嵌入式设备,如智能家居面板、工业仪表盘等。

  3. RGB接口:适用于需要显示丰富动态内容、但对成本和功耗不是极度敏感的设备,如中高端工业HMI、车载显示屏等。

  4. MIPI DSI接口:是现代移动设备(智能手机、平板电脑)和高性能嵌入式设备的主流选择,追求高分辨率、高刷新率、低功耗和紧凑的物理设计。

API说明

头文件

qosa_lcd.h

LCD 函数列表

函数

描述

qosa_lcd_init()

初始化LCD控制器

qosa_lcd_deinit()

反初始化LCD控制器

qosa_lcd_clear_screen()

清除LCD屏幕

qosa_lcd_display_on()

开启LCD显示

qosa_lcd_display_off()

关闭LCD显示

qosa_lcd_write_cmd()

向LCD发送配置命令

qosa_lcd_write_cmd_data()

向LCD发送数据

qosa_lcd_flush_cmd()

刷新所有缓存的命令和命令数据

qosa_lcd_read_cmd_data()

LCD控制器读取LCD配置

qosa_lcd_write()

向LCD指定位置发送图片数据

qosa_lcd_ioctl()

LCD控制接口

函数定义

LCD基础控制

qosa_lcd_init

函数原型
qosa_lcd_error_e qosa_lcd_init(qosa_lcd_channel_e lcd_no)
功能描述

初始化指定通道的LCD控制器,配置相关硬件参数和驱动设置

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 在调用其他LCD函数之前必须先调用此函数进行初始化

  2. 重复初始化同一通道会返回 QOSA_LCD_INIT_REPEAT_ERR 错误

  3. 初始化过程会配置GPIO、SPI等硬件外设,请确保相关引脚未被其他功能占用

qosa_lcd_deinit

函数原型
qosa_lcd_error_e qosa_lcd_deinit(qosa_lcd_channel_e lcd_no)
功能描述

反初始化LCD控制器,释放相关资源

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 反初始化后需要重新初始化才能再次使用LCD功能

  2. 建议在系统关机或进入低功耗模式前调用此函数

  3. 反初始化会关闭显示并释放内存资源

qosa_lcd_ioctl

函数原型
qosa_lcd_error_e qosa_lcd_ioctl(qosa_lcd_channel_e lcd_no, qosa_lcd_ioctl_cmd_e cmd, void *arg)
功能描述

LCD控制接口,用于执行各种控制命令

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

cmd

qosa_lcd_ioctl_cmd_e

参考 qosa_lcd_ioctl_cmd_e 枚举

对应的控制命令

arg

void *

对应的控制命令参数

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意: 不同的命令需要不同类型的参数,请参考枚举体说明

显示控制

qosa_lcd_clear_screen

函数原型
qosa_lcd_error_e qosa_lcd_clear_screen(qosa_lcd_channel_e lcd_no, qosa_uint16_t color)
功能描述

使用指定颜色清除整个LCD屏幕

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

color

qosa_uint16_t

0x0000~0xffff

需要填充的颜色值(RGB565格式)

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 颜色值应符合当前设置的输出格式(默认为RGB565)

  2. 该操作会覆盖屏幕上所有现有内容

  3. 在显示动态内容前建议先清屏以避免残影

qosa_lcd_display_on

函数原型
qosa_lcd_error_e qosa_lcd_display_on(qosa_lcd_channel_e lcd_no)
功能描述

开启LCD显示,使屏幕内容可见

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:qosa_lcd_display_off 配合使用可实现低功耗控制

qosa_lcd_display_off

函数原型
qosa_lcd_error_e qosa_lcd_display_off(qosa_lcd_channel_e lcd_no)
功能描述

关闭LCD显示,屏幕内容不可见

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 关闭显示可显著降低系统功耗

  2. 重新开启显示后,原有显示内容保持不变

qosa_lcd_write

函数原型
qosa_lcd_error_e qosa_lcd_write(qosa_lcd_channel_e lcd_no, qosa_uint8_t *buffer, qosa_uint16_t start_x, qosa_uint16_t start_y, qosa_uint16_t end_x, qosa_uint16_t end_y)
功能描述

向LCD指定矩形区域发送图片数据

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

buffer

qosa_uint8_t *

需要发送的数据地址

start_x

qosa_uint16_t

0~屏幕最大宽度

起始X坐标

start_y

qosa_uint16_t

0~屏幕最大高度

起始Y坐标

end_x

qosa_uint16_t

0~屏幕最大宽度

结束X坐标

end_y

qosa_uint16_t

0~屏幕最大高度

结束Y坐标

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 坐标范围必须在LCD分辨率范围内:0 ≤ start_xend_x < lcd_width,0 ≤ start_yend_y < lcd_height

  2. 数据缓冲区格式应与配置的输入格式一致

  3. 大数据量传输时注意缓冲区大小,避免内存溢出

命令和数据操作

qosa_lcd_write_cmd

函数原型
qosa_lcd_error_e qosa_lcd_write_cmd(qosa_lcd_channel_e lcd_no, qosa_uint8_t cmd)
功能描述

向LCD发送配置命令

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

cmd

qosa_uint8_t

0x00-0xff

需要发送的命令

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 命令值需参考具体LCD驱动IC的数据手册

  2. 某些命令需要配合 qosa_lcd_write_cmd_data 发送参数数据

  3. 在SPI模式下,命令和数据通过D/CX引脚区分

qosa_lcd_write_cmd_data

函数原型
qosa_lcd_error_e qosa_lcd_write_cmd_data(qosa_lcd_channel_e lcd_no, qosa_uint8_t cmd_data)
功能描述

向LCD发送命令数据,配合命令使用

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

cmd_data

qosa_uint8_t

0x00-0xff

需要发送的命令数据

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 通常在前一个 qosa_lcd_write_cmd 后调用,用于发送命令参数

  2. 数据格式和长度取决于前导命令的要求

  3. 多个参数数据需要多次调用此函数

qosa_lcd_flush_cmd

函数原型
qosa_lcd_error_e qosa_lcd_flush_cmd(qosa_lcd_channel_e lcd_no)
功能描述

刷新所有缓存的命令和命令数据,确保所有操作被执行

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 在批量发送命令后调用,确保所有命令被LCD控制器执行

  2. 由于LCD控制器设计不同,部分平台该函数可能无实际作用

qosa_lcd_read_cmd_data

函数原型
qosa_lcd_error_e qosa_lcd_read_cmd_data(qosa_lcd_channel_e lcd_no, qosa_uint8_t cmd, qosa_uint8_t *data, qosa_uint32_t length, qosa_uint32_t dummyCycleLen)
功能描述

LCD控制器读取LCD配置信息

参数说明

参数名

类型

是否必填

范围/单位

说明

lcd_no

qosa_lcd_channel_e

参考 qosa_lcd_channel_e 枚举

LCD通道号选择

cmd

qosa_uint8_t

0x00~0xff

需要读取的LCD配置地址指令

data

qosa_uint8_t *

待读取数据的地址

length

qosa_uint32_t

待读取数据的长度

dummyCycleLen

qosa_uint32_t

命令传输后驱动程序等待的虚拟周期长度

返回值说明

成功返回 QOSA_LCD_SUCCESS,失败返回其他错误码

备注

注意:

  1. 需要确保LCD驱动IC支持读取操作

  2. dummyCycleLen 参数需根据具体LCD型号设置,通常为1-2个时钟周期

  3. 读取的数据格式需参考LCD驱动IC数据手册解析

数据结构定义

qosa_lcd_operations_t

/**
 * @struct qosa_lcd_operations_t
 * @brief LCD操作回调函数集。
 */
 typedef struct
 {
     void (*init)(qosa_lcd_channel_e lcd_no); /*!< LCD初始化完成后执行的函数 */
     void (*deInit)(qosa_lcd_channel_e lcd_no); /*!< LCD反初始化前执行的函数 */
     void (*enterSleep)(qosa_lcd_channel_e lcd_no, qosa_bool_t is_sleep); /*!< 尝试显示LCD开/关前执行的函数 */
     void (*setDisplayWindow)(qosa_lcd_channel_e lcd_no,uint16_t left,uint16_t top,uint16_t right,uint16_t bottom); /*!< 尝试向LCD写入数据包前执行的函数 */
     qosa_uint32_t (*readId)(qosa_lcd_channel_e lcd_no); /*!< 需要读取LCD ID时执行的函数 */
} qosa_lcd_operations_t;

qosa_lcd_reset_func_t

/**
 * @struct qosa_lcd_reset_func_t
 * @brief LCD复位功能配置。
 */
 typedef struct
 {
    qoes_gpio_num_e reset_gpio; /*!< 复位引脚对应的GPIO编号 */
    qosa_uint32_t low_level_time; /*!< 复位引脚保持低电平的时间(毫秒) */
 } qosa_lcd_reset_func_t;

qosa_lcd_spi_func_t

/**
 * @struct qosa_lcd_spi_func_t
 * @brief LCD SPI功能配置。
 */
typedef struct
{
    qosa_spi_frame_format_e  frame_format;  /*!< SPI时钟极性和相位配置 */
    qosa_spi_bit_order_e     bit_order;     /*!< SPI数据传输位序 */
    qosa_spi_transmit_mode_e transmit_mode; /*!< SPI传输模式 */
    qosa_spi_nss_mode_e      nss_mode;      /*!< SPI片选信号控制方式 */

    qoes_gpio_num_e nss_gpio; /*!< 标准SPI片选引脚(若nss_mode为硬件控制,此参数无效) */
    qoes_gpio_num_e ds_gpio;  /*!< 使用标准SPI时,需要通过软件控制的LCD数据/命令选择引脚 */
} qosa_lcd_spi_func_t;

qosa_lcd_drv_cfg_t

/**
 * @struct qosa_lcd_drv_cfg_t
 * @brief LCD驱动配置选项。
 */
typedef struct
{
    qosa_lcd_channel_e lcd_channel;         /*!< LCD通道配置 */
    qosa_uint8_t *lcd_name;                 /*!< LCD名称 */
    qosa_uint32_t lcd_device_id;            /*!< LCD设备ID */
    qosa_uint32_t lcd_width;                /*!< LCD宽度配置 */
    qosa_uint32_t lcd_height;               /*!< LCD高度配置 */

    qosa_lcd_bus_mode_e          bus_mode;          /*!< LCD操作总线模式 */
    qosa_lcd_input_format_opt_e  lcd_input_format;  /*!< LCD输入数据格式 */
    qosa_lcd_output_format_opt_e lcd_output_format; /*!< LCD输出数据格式 */
    qosa_lcd_operations_t *operation;           /*!< LCD操作回调函数集 */
    qosa_uint32_t          lcd_write_frequence; /*!< LCD控制器写入频率 */
    qosa_uint32_t          lcd_read_frequence;  /*!< LCD控制器读取频率 */
    qosa_lcd_reset_func_t  lcd_reset_func;      /*!< LCD复位功能配置 */
    qosa_lcd_spi_func_t    lcd_spi_func;        /*!< LCD标准SPI功能配置 */
} qosa_lcd_drv_cfg_t;

枚举类型定义

qosa_lcd_error_e

/**
 * @enum qosa_lcd_error_e
 * @brief LCD错误代码定义。
 */
typedef enum
{
    QOSA_LCD_SUCCESS = 0, /*!< 操作成功 */

    QOSA_LCD_EXECUTE_ERR = 1 | QOSA_LCD_ERRCODE_BASE, /*!< LCD执行错误 */
    QOSA_LCD_MEM_ADDR_NULL_ERR,                       /*!< 内存地址为空 */
    QOSA_LCD_INVALID_PARAM_ERR,                       /*!< 参数无效 */
    QOSA_LCD_MEM_LOW_ERR,                             /*!< 内存不足 */
    QOSA_LCD_INIT_REPEAT_ERR,                         /*!< LCD重复初始化 */
    QOSA_LCD_INIT_ERR,                                /*!< LCD初始化错误 */
    QOSA_LCD_NO_INIT_ERR,                             /*!< LCD未初始化 */
    QOSA_LCD_OPTION_NOT_SUPPORT_ERR,                  /*!< LCD配置不支持 */
    QOSA_LCD_OPTION_NOT_FIND_ERR,                     /*!< 未找到LCD配置 */
    QOSA_LCD_INPUT_FORMAT_NOT_SUPPORT_ERROR,          /*!< 输入格式不支持 */
    QOSA_LCD_OUTPUT_FORMAT_NOT_SUPPORT_ERROR,         /*!< 输出格式不支持 */
    QOSA_LCD_SEM_CREATE_ERROR,                        /*!< 信号量创建失败 */
    QOSA_LCD_SEM_WAIT_ERROR,                          /*!< 等待信号量失败 */
    QOSA_LCD_MUTEX_NOT_CREATE_ERROR,                  /*!< 互斥锁未创建 */
} qosa_lcd_error_e;

qosa_lcd_channel_e

/**
 * @enum qosa_lcd_channel_e
 * @brief LCD通道枚举定义。
 */
typedef enum
{
    QOSA_LCD_SPECIAL_PORT = 0, /*!< LCD专用控制器 */
    QOSA_LCD_SPI_PORT_0,       /*!< 标准SPI端口0 */
    QOSA_LCD_SPI_PORT_1,       /*!< 标准SPI端口1 */
    QOSA_LCD_SPI_PORT_2,       /*!< 标准SPI端口2 */
    QOSA_LCD_PORT_MAX,         /*!< 最大端口数 */
} qosa_lcd_channel_e;

qosa_lcd_input_format_opt_e

/**
  * @enum qosa_lcd_input_format_opt_e
  * @brief 输入数据原始格式定义。
  */
typedef enum
{
    QOSA_LCD_INPUT_FORMAT_RGB565 = 0,    /*!< RGB565格式输入(默认) */
    QOSA_LCD_INPUT_FORMAT_RGB444,        /*!< RGB444格式输入 */
    QOSA_LCD_INPUT_FORMAT_RGB555,        /*!< RGB555格式输入 */
    QOSA_LCD_INPUT_FORMAT_RGB666,        /*!< RGB666格式输入 */
    QOSA_LCD_INPUT_FORMAT_RGB888,        /*!< RGB888格式输入 */
    QOSA_LCD_INPUT_FORMAT_GREY,          /*!< 仅亮度Y分量输入 */
    QOSA_LCD_INPUT_FORMAT_YUV422,        /*!< YUV422格式输入 */
    QOSA_LCD_INPUT_FORMAT_YUV420,        /*!< YUV420格式输入 */
    QOSA_LCD_INPUT_FORMAT_YUV400,        /*!< YUV400格式输入 */
    QOSA_LCD_INPUT_FORMAT_YUV420_3PLANE, /*!< YUV420三平面格式输入 */
    QOSA_LCD_INPUT_FORMAT_MAX,           /*!< 最大输入格式 */
} qosa_lcd_input_format_opt_e;

qosa_lcd_output_format_opt_e

/**
  * @enum qosa_lcd_output_format_opt_e
  * @brief 输出数据目标格式定义。
  */
typedef enum
{
    QOSA_LCD_OUTPUT_FORMAT_RGB565 = 0, /*!< RGB565格式输出(默认) */
    QOSA_LCD_OUTPUT_FORMAT_RGB444,     /*!< RGB444格式输出 */
    QOSA_LCD_OUTPUT_FORMAT_RGB666,     /*!< RGB666格式输出 */
    QOSA_LCD_OUTPUT_FORMAT_RGB888,     /*!< RGB888格式输出 */
    QOSA_LCD_OUTPUT_FORMAT_MAX,        /*!< 最大输出格式 */
} qosa_lcd_output_format_opt_e;

qosa_lcd_bus_mode_e

/**
  * @enum qosa_lcd_bus_mode_e
  * @brief LCD SPI总线模式定义。
  */
typedef enum
{
    QOSA_LCD_BUS_MODE_3_WIRE_I_SPI = 0,     /*!< 3线I型SPI接口(默认) */
    QOSA_LCD_BUS_MODE_3_WIRE_II_SPI,        /*!< 3线II型SPI接口 */
    QOSA_LCD_BUS_MODE_4_WIRE_I_SPI,         /*!< 4线I型SPI接口 */
    QOSA_LCD_BUS_MODE_4_WIRE_II_SPI,        /*!< 4线II型SPI接口 */
    QOSA_LCD_BUS_MODE_4_WIRE_II_2_DATA_SPI, /*!< 4线II型双数据SPI接口 */
    QOSA_LCD_BUS_MODE_8080,                 /*!< 8080(MCU)并行接口 */
    QOSA_LCD_BUS_MODE_MIPI,                 /*!< MIPI接口 */
} qosa_lcd_bus_mode_e;

qosa_lcd_ioctl_cmd_e

/**
 * @enum qosa_lcd_ioctl_cmd_e
 * @brief LCD控制命令定义。
 */
typedef enum
{
    QOSA_LCD_IOCTL_NONE,                  /*!< 空命令 */
    QOSA_LCD_IOCTL_GET_STD_CHANNEL,       /*!< 获取标准版本LCD默认通道号
                                           - 配置值参考 @ref qosa_lcd_channel_e */
    QOSA_LCD_IOCTL_SET_DRV_CFG,           /*!< 设置LCD驱动配置
                                           - 配置值参考 @ref qosa_lcd_drv_cfg_t */
    QOSA_LCD_IOCTL_GET_DRV_CFG,           /*!< 获取LCD驱动配置
                                           - 配置值参考 @ref qosa_lcd_drv_cfg_t */
    QOSA_LCD_IOCTL_SET_SLEEP,             /*!< 控制LCD控制器进入/退出睡眠模式
                                           - 配置值参考 @ref qosa_bool_t */
} qosa_lcd_ioctl_cmd_e;

应用示例

LCD完整示例Demo

请查看 https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/peripheral/lcd/lcd_demo.c