From 11600e415390fe07e6d6054a37c4f6326d0f8e5d Mon Sep 17 00:00:00 2001 From: JiXieShi Date: Tue, 17 Sep 2024 16:45:15 +0800 Subject: [PATCH] UP tft --- lib/tft/inc/tft.h | 69 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 19 deletions(-) diff --git a/lib/tft/inc/tft.h b/lib/tft/inc/tft.h index cab44cd..5e1f403 100644 --- a/lib/tft/inc/tft.h +++ b/lib/tft/inc/tft.h @@ -8,24 +8,54 @@ extern "C" { #include "stdint.h" #include "stdlib.h" - +/*功能配置区*/ //#define REFRESH_CALL_ENABLE 1 //使用DMA或者整体刷新函数 #define HZK_FONT //使用HZK 12/16 字体 tools下可自由生成 #define UTF8_TO_UNICODE //启用UTF8转换显示 //#define LVGL_FONT //启用LVGL字体 +/*启用设备配置区*/ #define TFT_ST7735 0x5CU -#define TFT_ST7796 0xACU +#define TFT_ST7796 0x1E74U typedef struct TFT_Dev TFT_T; - +/** + * @brief 写寄存器数据函数指针类型 + * @param reg: [输入] 寄存器地址 + * @param pdata: [输入] 数据缓冲区指针 + * @param ldata: [输入] 数据长度 + * @return uint8_t 返回状态 + * @example write_status = TFT_WRITE_REG(reg_addr, data_buffer, data_length); + **/ typedef uint8_t (*TFT_WRITE_REG_t)(uint8_t reg, uint8_t *pdata, size_t ldata); +/** + * @brief 读寄存器数据函数指针类型 + * @param reg: [输入] 寄存器地址 + * @param pdata: [输出] 数据缓冲区指针 + * @param ldata: [输入] 数据长度 + * @return uint8_t 返回状态 + * @example read_status = TFT_READ_REG(reg_addr, data_buffer, data_length); + **/ typedef uint8_t (*TFT_READ_REG_t)(uint8_t reg, uint8_t *pdata, size_t ldata); +/** + * @brief 发送数据函数指针类型 + * @param data: [输入] 数据缓冲区指针 + * @param len: [输入] 数据长度 + * @return uint8_t 返回状态 + * @example send_status = TFT_SEND_DATA(data_buffer, data_length); + **/ typedef uint8_t (*TFT_SEND_DATA_t)(uint8_t *data, size_t len); +/** + * @brief 接收数据函数指针类型 + * @param data: [输出] 数据缓冲区指针 + * @param len: [输入] 数据长度 + * @return uint8_t 返回状态 + * @example recv_status = TFT_RECV_DATA(data_buffer, data_length); + **/ typedef uint8_t (*TFT_RECV_DATA_t)(uint8_t *data, size_t len); /** @@ -55,7 +85,7 @@ typedef void (*TFT_REFRESH_t)(TFT_T *dev); * @brief TFT状态枚举 */ typedef enum { - TFT_ERROR, + TFT_ERROR,/**< 错误状态 */ TFT_IDLE, /**< 空闲状态 */ TFT_WRITE, /**< 写入状态 */ TFT_REFRESH, /**< 刷新状态 */ @@ -78,24 +108,25 @@ typedef union TFT_Color { * @brief TFT设备结构体 */ struct TFT_Dev { - uint32_t id; - uint8_t setxcmd; - uint8_t setycmd; - uint8_t wgramcmd; - TFT_DIR_T dir: 4; /**< 显示方向,占4位 */ - TFT_STATE_T state: 4; /**< TFT状态,占4位 */ - uint16_t width; /**< 显示宽度 */ - uint16_t height; /**< 显示高度 */ - TFT_WRITE_REG_t writeReg; /**< 写寄存器函数指针 */ - TFT_READ_REG_t readReg; /**< 读寄存器函数指针 */ - TFT_SEND_DATA_t sendData; /**< 发送数据函数指针 */ - TFT_RECV_DATA_t recvData; /**< 接收数据函数指针 */ - TFT_BLACKLIGHT_t blacklight; /**< TFT背光控制函数指针 */ - TFT_DELAY_t delay; /**< TFT延迟函数指针类型 */ + uint32_t id; /**< TFT设备ID */ + uint8_t setxcmd; /**< 设置X坐标命令 */ + uint8_t setycmd; /**< 设置Y坐标命令 */ + uint8_t wgramcmd; /**< 写GRAM命令 */ + TFT_DIR_T dir: 4; /**< 显示方向,占4位 */ + TFT_STATE_T state: 4; /**< TFT状态,占4位 */ + uint16_t width; /**< 显示宽度 */ + uint16_t height; /**< 显示高度 */ + TFT_WRITE_REG_t writeReg; /**< 写寄存器函数指针 */ + TFT_READ_REG_t readReg; /**< 读寄存器函数指针 */ + TFT_SEND_DATA_t sendData; /**< 发送数据函数指针 */ + TFT_RECV_DATA_t recvData; /**< 接收数据函数指针 */ + TFT_BLACKLIGHT_t blacklight; /**< TFT背光控制函数指针 */ + TFT_DELAY_t delay; /**< TFT延迟函数指针类型 */ #if REFRESH_CALL_ENABLE - TFT_REFRESH_t call; /**< TFT刷新函数指针,仅在REFRESH_CALL_ENABLE宏定义启用时有效 */ + TFT_REFRESH_t call; /**< TFT刷新函数指针,仅在REFRESH_CALL_ENABLE宏定义启用时有效 */ #endif }; + /** * @brief 初始化TFT显示屏 * @param dev: [输入] TFT设备结构体指针