📄 lcd_driver_tft8899uctdfw_g_f_led_sp100.c
字号:
/*--------------------------------------------------------------------------
Standard include files:
--------------------------------------------------------------------------*/
#include "Interface.h"
#define LCDPOWER_GPIO GPIO_8
/*--------------------------------------------------------------------------
*STRUCTURE
--------------------------------------------------------------------------*/
const struct StaticMemoryControl stMemoryCtrlCfg_Lcd =
{
0, //SMT:1;d
0, //BL:2;
0, //BCM:1;
0, //NFE:1;
0, //CE:1;
1, //BW;
1,//2, //TAS:3; //setup time
0, //6800Mode:1;
1,//1, //TAH:3; //hold time
0, //Dummy1:1;
2,//3, //TBP:4; //write time
1, //TAW:4;
2, //STRV:4;
0 //Dummy0:4;
};
/*-----------------------------------------------------------------------------
* 函数: LcdModulePowerOnOff
* 功能: LCD模块电源控制
* 参数: u8Value----0:关闭;1:开启
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_LcdModulePowerOnOff(U8 u8Value)
{
Hyc_hyhwGpio_SetasGpio(LCDPOWER_GPIO);
Hyc_hyhwGpio_SetOut(LCDPOWER_GPIO);
if (u8Value != 0)
{//点亮背光
Hyc_hyhwGpio_SetHigh(LCDPOWER_GPIO);
}
else
{//关闭背光
Hyc_hyhwGpio_SetLow(LCDPOWER_GPIO);
}
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_InitLcdModuleInstructs()
* 功能: LCD初始化指令
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_InitLcdModuleInstructs(void)
{
Hyc_drvLcd_WriteInstruct(0x9600);//vdd on ,other commands cannot be entered for 10ms after entering the command
Hyc_drvLcd_WriteInstruct(0x9200);//start oscillation
Hyc_drvLcd_WriteInstruct(0x9900);//soft reset
Hyc_drvLcd_WriteInstruct(0xAE00);//display off
Hyc_drvLcd_WriteInstruct(0xCA00);//set display
Hyc_drvLcd_WriteData(0x3200);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0100);
Hyc_drvLcd_WriteData(0x3F00);
Hyc_drvLcd_WriteData(0x0200);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0100);
Hyc_drvLcd_WriteInstruct(0xA100);//set display timing
Hyc_drvLcd_WriteData(0x0100);
Hyc_drvLcd_WriteData(0x2F00);
Hyc_drvLcd_WriteData(0x0300);
Hyc_drvLcd_WriteData(0x2D00);
Hyc_drvLcd_WriteData(0x2300);
Hyc_drvLcd_WriteData(0x3000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0xA900); //cancels partial display
Hyc_drvLcd_WriteInstruct(0x8C00); //set AC operation drive
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0xAB00);//set display start line
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x3100);//set display data interface
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x8B00); //set display color mode
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x6F00);//set gate line scan mode
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0xBC00);//set data
Hyc_drvLcd_WriteData(0x0900);
Hyc_drvLcd_WriteInstruct(0x2000);//set electronic control
Hyc_drvLcd_WriteData(0x1000);//VDDHS=4.0V
Hyc_drvLcd_WriteData(0x1800);//VCOMH=2.7v
Hyc_drvLcd_WriteData(0x1A00);//VCA=2.8V
Hyc_drvLcd_WriteData(0x1100);//Vonreg=4.1v
Hyc_drvLcd_WriteData(0x1100);//Vforeg=4.1v
Hyc_drvLcd_WriteData(0x1000);//VDDRH=4.0V
Hyc_drvLcd_WriteData(0x0700);
Hyc_drvLcd_WriteInstruct(0x2200);//set positive r correction characteristics
Hyc_drvLcd_WriteData(0x1400);
Hyc_drvLcd_WriteData(0xC100);
Hyc_drvLcd_WriteData(0x2600);
Hyc_drvLcd_WriteData(0x2A00);
Hyc_drvLcd_WriteData(0x2300);
Hyc_drvLcd_WriteData(0x0400);
Hyc_drvLcd_WriteInstruct(0x2500);//set negative r correction characteristics
Hyc_drvLcd_WriteData(0x1400);
Hyc_drvLcd_WriteData(0xC100);
Hyc_drvLcd_WriteData(0x2600);
Hyc_drvLcd_WriteData(0x2A00);
Hyc_drvLcd_WriteData(0x2300);
Hyc_drvLcd_WriteData(0x0400);
Hyc_drvLcd_WriteInstruct(0x2100);//set power control
Hyc_drvLcd_WriteData(0x0100);
Hyc_drvLcd_WriteData(0x2400);
Hyc_drvLcd_WriteData(0x0F00);
Hyc_drvLcd_WriteData(0xFE00);
Hyc_drvLcd_WriteData(0x3300);
Hyc_drvLcd_WriteData(0x3100);
Hyc_drvLcd_WriteData(0xFF00);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x2200);
Hyc_drvLcd_WriteData(0x3300);
Hyc_drvLcd_WriteData(0x1100);
Hyc_drvLcd_WriteData(0x4400);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x2300);//set partial power control
Hyc_drvLcd_WriteData(0x3300);
Hyc_drvLcd_WriteData(0xFF00);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x4400);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x9400);//sleep out
Hyc_drvLcd_WriteInstruct(0x1500);//set start address
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteData(0x0000);
Hyc_drvLcd_WriteInstruct(0x7500);// set end row and column
Hyc_drvLcd_WriteData(0xEF00); // end row
Hyc_drvLcd_WriteData(0x0100); // end column
Hyc_drvLcd_WriteData(0x3F00); // end column
return;
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_InitLCDModule()
* 功能: LCD初始化
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
//使用此驱动IC的显示屏有:TFT8899UCTDFW_G_F_LED
void Hyc_drvLcd_InitLCDModule(void)
{
LcdModulePowerOnOff(0);
Hyc_drvLcd_InitLcdModuleInstructs();
Hyc_drvLcd_ClearLcdRAM();
Hyc_drvLcd_WriteInstruct(0xAF00); //display on
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_LCDModuleSleepOut()
* 功能: LCD退出睡眠状态,并送屏一次
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_LCDModuleSleepOut(void)
{
Hyc_drvLcd_InitLcdModuleInstructs();//sleep out = reInitialize
Hyc_RefreshScreen();
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_LCDModulePowerOn()
* 功能: 退出LCD屏保状态,打开LCD模块电源
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_LCDModulePowerOn(void)
{
Hyc_drvLcd_LCDModuleSleepOut();
Hyc_drvLcd_WriteInstruct(0xAF00); //display on
LcdModulePowerOnOff(1);
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_LCDModulePowerOff()
* 功能: 进入LCD屏保状态,关闭LCD模块电源
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_LCDModulePowerOff(void)
{
Hyc_drvLcd_WriteInstruct(0xAE00);//display off
LcdModulePowerOnOff(0);
Hyc_drvLcd_WriteInstruct(0x9500);//sleep in
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_DisplayOn()
* 功能: 打开显示
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_DisplayOn(void)
{
Hyc_drvLcd_WriteInstruct(0xAF00); //display on
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_DisplayOff()
* 功能: 关闭显示
* 参数:
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_DisplayOff(void)
{
Hyc_drvLcd_WriteInstruct(0xAE00);//display off
}
/*-----------------------------------------------------------------------------
* 函数: drvLcd_ContrastAdjust
* 功能: 调整对比度
* 参数: none
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_ContrastAdjust (U8 u8Contrast)
{
//待实现
}
/*-----------------------------------------------------------------------------
* 函数: Hyc_drvLcd_SetRowColumn
* 功能: 设置彩色显示屏的显示起始地址,
* 地址为行序号和列序号row和Column,以及高度和宽度
* 参数: kRow - 行序号 , 起始行:0
* kColumn - 列序号 ,起始列:0
* U16 kHeight - 高度
* U16 kWidth - 宽度
* 返回: none
*----------------------------------------------------------------------------*/
void Hyc_drvLcd_SetRowColumn_Lcd(RECT *rect)
{
Hyc_drvLcd_WriteInstruct(0x1500); // set start address
Hyc_drvLcd_WriteData((U16)((rect->y&0x00FF)<<8));
Hyc_drvLcd_WriteData((U16)(rect->x&0x0100));
Hyc_drvLcd_WriteData((U16)((rect->x&0x00FF)<<8));
rect->y=(U16)(rect->y+rect->h-1);
rect->x=(U16)(rect->x+rect->w-1);
Hyc_drvLcd_WriteInstruct(0x7500); // set end address
Hyc_drvLcd_WriteData((U16)((rect->y&0x00FF)<<8));
Hyc_drvLcd_WriteData((U16)(rect->x&0x0100));
Hyc_drvLcd_WriteData((U16)((rect->x&0x00FF)<<8));
Hyc_drvLcd_WriteInstruct(0x5C00); //RAM write
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -