#ifndef TFT_H #define TFT_H #ifdef __cplusplus extern "C" { #endif #include "stdint.h" #define REFRESH_CALL_ENABLE 1 //使用DMA或者整体刷新函数 #define HZK_FONT //使用HZK 12/16 字体 tools下可自由生成 #define UTF8_TO_UNICODE //启用UTF8转换显示 //#define LVGL_FONT //启用LVGL字体 typedef struct TFT_Dev TFT_T; /** * @brief TFT命令处理函数指针类型 * @param data: [输入] 数据指针 * @param len: [输入] 数据长度 * @return uint8_t 返回值 */ typedef uint8_t (*TFT_CMD_t)(uint8_t *data, size_t len); /** * @brief TFT数据处理函数指针类型 * @param data: [输入] 数据指针 * @param len: [输入] 数据长度 * @return uint8_t 返回值 */ typedef uint8_t (*TFT_DATA_t)(uint8_t *data, size_t len); /** * @brief TFT背光控制函数指针类型 * @param data: [输入] 数据指针 * @return uint8_t 返回值 */ typedef uint8_t (*TFT_BLACKLIGHT_t)(uint8_t data); #if REFRESH_CALL_ENABLE /** * @brief TFT 刷新函数指针类型 */ typedef void (*TFT_REFRESH_t)(TFT_T *dev); #endif /** * @brief TFT状态枚举 */ typedef enum { IDLE, /**< 空闲状态 */ WRITE, /**< 写入状态 */ REFRESH, /**< 刷新状态 */ } TFT_STATE_T; /** * @brief TFT设备结构体 */ struct TFT_Dev { uint8_t dir; /**< 显示方向 */ uint8_t width; /**< 显示宽度 */ uint8_t height; /**< 显示高度 */ TFT_STATE_T state; /**< TFT状态 */ TFT_CMD_t cmd; /**< TFT命令处理函数指针 */ TFT_DATA_t data; /**< TFT数据处理函数指针 */ TFT_BLACKLIGHT_t blacklight; /**< TFT背光控制函数指针 */ #if REFRESH_CALL_ENABLE TFT_REFRESH_t call; /**< TFT刷新函数指针 */ #endif }; #ifdef __cplusplus } #endif #endif //TFT_H