TraSH/sim/simple/driver/Driver_tftspi.h

150 lines
5.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
*
* TFT 1.14寸显示屏驱动文件目前使用SPI
*
* 版本修订:
* 修改时间 版本号 修改内容
* 2022-12-07 v1.0 开始构建本文件;
*
* Create 2016年09月09日
* Update 2022年12月07日
* Author dengchow
*
******************************************************************************
***/
#ifndef __TFT_SPI_H__
#define __TFT_SPI_H__
/*Needed Library Define*/
#include "__def.h"
#include "systick.h"
#include "gpio.h"
#define LCD_SPI_SOFT
#define CFG_LCD_X_SIZE LCD_X_SIZE
#define CFG_LCD_Y_SIZE LCD_Y_SIZE
/*Param Define*/
///扫描方向枚举
typedef enum
{
SCAN_L2R_U2D = (uint8_t)0, //从左到右,从上到下
SCAN_L2R_D2U = (uint8_t)1, //从左到右,从下到上
SCAN_R2L_U2D = (uint8_t)2, //从右到左,从上到下
SCAN_R2L_D2U = (uint8_t)3, //从右到左,从下到上
SCAN_U2D_L2R = (uint8_t)4, //从上到下,从左到右
SCAN_U2D_R2L = (uint8_t)5, //从上到下,从右到左
SCAN_D2U_L2R = (uint8_t)6, //从下到上,从左到右
SCAN_D2U_R2L = (uint8_t)7, //从下到上,从右到左
}_TFTScanDir;
///显示方向枚举
typedef enum
{
DISP_HORIZON = (uint8_t)0, //横向显示
DISP_PORTRAIT = (uint8_t)1, //纵向显示
}_TFTDispDir;
///tft控制参数集
typedef struct
{
uint16_t id; //ID
uint16_t width; //宽度
uint16_t height; //高度
uint16_t wramcmd; //开始写gram指令
uint16_t setxcmd; //设置x坐标指令
uint16_t setycmd; //设置y坐标指令
_TFTDispDir dir; //显示方向
}_TFTCmdTypeStruct;
extern _TFTCmdTypeStruct TFTCmd;//管理LCD重要参数
extern uint16_t POINT_COLOR;//默认黑色
extern uint16_t BACK_COLOR; //背景颜色,默认为白色
///复位控制
#define TFT_RST_PORT ;
#define TFT_RST_PIN ;
#define TFT_RST_HIGH() LCD_RST_H;
#define TFT_RST_LOW() LCD_RST_L;
///数据&命令控制
#define TFT_DC_PORT ;
#define TFT_DC_PIN ;
#define TFT_DC_DATA() LCD_DC_H;
#define TFT_DC_CMD() LCD_DC_L;
///背光灯控制
#define TFT_BACK_LED_PORT ;
#define TFT_BACK_LED_PIN ;
#define TFT_BACK_LED_OPEN() LCD_BK_ON;
#define TFT_BACK_LED_CLOSE() LCD_BK_OFF;
///扫描方向定义
#define DFT_SCAN_DIR SCAN_L2R_U2D //SCAN_D2U_L2R
///设置tft显示模式若定义则为BGR否则为RGB
#define TFT_BGR_MODE
///颜色板RGB模式下色彩值
#define WHITE 0xFFFF // 1.白色
#define BLACK 0x0000 // 2.黑色
#define RED 0x001F // 3.红色
#define BRED 0XF81F // 4.紫色(水晶葡萄色)
#define GRED 0XFFE0 // 5.青色
#define YELLOW 0X07FF // 6.黄色
#define BLUE 0xF800 // 7.蓝色
#define MAGENTA 0xF81F // 8.洋红色(偏紫偏粉色)
#define GREEN 0x07E0 // 9.绿色
#define CYAN 0x7FFF //10.淡黄色
#define BBLUE 0XBC40 //11.浅蓝色
#define GRAY 0X8430 //12.灰色
#define BROWN 0X01CF //13.棕色
#define LLGBROWN 0X7D7C //14.浅浅灰棕色(浅皮肤色)
#define LGBROWN 0X5458 //15.浅灰棕色
#define LRED 0X841F //16.浅红色(果肉色)
#define LGRAY 0XC618 //17.浅灰色
#define LGGREEN 0XA651 //18.浅灰绿色(保护眼色)
#define LBROWN 0X2B12 //19.浅棕色
#define tobgr(d) TFT_RGB2BGR(d)
#define torgb(d) TFT_BGR2RGB(d)
/*Function Define*/
///tft底层寄存器相关操作
void TFT_WR_REG(uint16_t reg);//写寄存器地址
void TFT_WR_DATA(uint16_t dat);//写数据
uint16_t TFT_RD_DATA(void);//读数据
void TFT_Select(uint8_t idx, uint8_t en);//选择lcd设备
void TFT_WriteReg(uint16_t reg, uint16_t dat);//向寄存器写数据
uint16_t TFT_ReadReg(uint16_t reg);//从寄存器读数据
void TFT_StartWriteRAM(void);//开始写GRAM
void TFT_WriteRAM(uint16_t color);//写GRAM
void TFT_DisplayOn(void);//tft开启显示
void TFT_DisplayOff(void);//tft关闭显示
void TFT_SetCursor(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2);//设置光标位置
void TFT_SetScanDir(_TFTScanDir direct);//设置tft自动扫描方向
void TFT_SetDisplayDir(_TFTDispDir direct);//设置tft显示方向
void TFT_SetWindowSize(uint16_t XS, uint16_t YS, uint16_t width, uint16_t height);//设置tft窗口大小
///初始化相关操作
void TFT_InitConfig(void);//tft初始化设置
void TFT_ClearScreen(uint16_t color);//tft清屏
uint16_t TFT_ReadPoint(uint16_t X, uint16_t Y);//读取个某点的颜色值
void TFT_DrawPoint(uint16_t X, uint16_t Y, uint16_t color);//画点
void TFT_FastDrawPoint(uint16_t X, uint16_t Y, uint16_t color);//快速画点
void TFT_FillSingleColor(uint16_t XS, uint16_t YS, uint16_t XE, uint16_t YE, uint16_t color);//在指定区域内填充单个颜色
void TFT_FillBlockColor(uint16_t XS, uint16_t YS, uint16_t XE, uint16_t YE, uint16_t *color);//在指定区域内填充颜色块
#endif
/* ******************** Copyright (C), 2017-2017, TYUT TSS-plan by SERI.LJI ******************** */