📄 lcd_st7787_qvga.c
字号:
LCD_Data(0x0000);
}
}
#endif
//while(1);
/*
LCD_Command(0x1100);
Delay1Ms(120);
LCD_Command(0xbc00);
LCD_Command(0xc300);
LCD_Data(0x0100);
LCD_Data(0x3300);
LCD_Data(0x0100);
LCD_Data(0x0000);
LCD_Data(0x0000);
Delay1Ms(30);
LCD_Command(0xf400);
LCD_Data(0xff00);
LCD_Data(0x3f00);
LCD_Command(0xc200);
LCD_Data(0x0100);
LCD_Data(0xd600);
LCD_Data(0x8500);
LCD_Data(0x3000);
LCD_Data(0x0000);
Delay1Ms(24);
LCD_Command(0xfb00);
LCD_Data(0x5f00);
LCD_Command(0xc500);
LCD_Data(0xba00);
LCD_Data(0x1a00);
Delay1Ms(30);
LCD_Command(0xc600);
LCD_Data(0x2200);
LCD_Data(0x0000);
Delay1Ms(30);
LCD_Command(0xc000);
LCD_Data(0x0000);
Delay1Ms(30);
LCD_Command(0x3500);
LCD_Data(0x0000);
Delay1Ms(30);
LCD_Command(0xb600);
LCD_Data(0x0200);
LCD_Data(0x0400);
//Delay1Ms(30);
LCD_Command(0x3a00);
LCD_Data(0x0500);
LCD_Command(0x2900);
LCD_Command(0x2c00);
*/
/*
LCD_Command(0x0011);
Delay1Ms(120);
LCD_Reg_Set(0xbcc3,0x0133);
//LCD_Command(0x00bc);
LCD_Reg_Set(0xbcc3,0x0100);
//LCD_Command(0x00c3);
//LCD_Data(0x0001);
//LCD_Data(0x0033);
//LCD_Data(0x0001);
//LCD_Data(0x0000);
LCD_Data(0x0000);
Delay1Ms(30);
LCD_Reg_Set(0x00f4,0xff3f);
//LCD_Command(0x00f4);
//LCD_Data(0x00ff);
//LCD_Data(0x003f);
LCD_Reg_Set(0x00c2,0x01d6);
//LCD_Command(0x00c2);
//LCD_Data(0x0001);
//LCD_Data(0x00d6);
LCD_Reg_Set(0x00c2,0x8530);
//LCD_Data(0x0085);
//LCD_Data(0x0030);
LCD_Data(0x0000);
Delay1Ms(24);
LCD_Reg_Set(0x00fb,0x005f);
//LCD_Command(0x00fb);
//LCD_Data(0x005f);
LCD_Reg_Set(0x00c5,0xba1a);
//LCD_Command(0x00c5);
//LCD_Data(0x00ba);
//LCD_Data(0x001a);
Delay1Ms(30);
LCD_Reg_Set(0x00c6,0x2200);
//LCD_Command(0x00c6);
//LCD_Data(0x0022);
//LCD_Data(0x0000);
Delay1Ms(30);
LCD_Reg_Set(0x00c0,0x0000);
//LCD_Command(0x00c0);
//LCD_Data(0x0000);
Delay1Ms(30);
LCD_Reg_Set(0x0035,0x0000);
//LCD_Command(0x0035);
//LCD_Data(0x0000);
Delay1Ms(30);
LCD_Reg_Set(0x00b6,0x0204);
//LCD_Command(0x00b6);
//LCD_Data(0x0002);
//LCD_Data(0x0004);
//Delay1Ms(30);
LCD_Reg_Set(0x003a,0x0005);
//LCD_Command(0x003a);
//LCD_Data(0x0005);
//LCD_Reg_Set(0x003a,0x0005);
LCD_Command(0x0029);
LCD_Command(0x002c);
*/
}
#endif
void Poweron_Standby_lcd(void)//alex
{
/*
LCD_Command(0x0010);
Delay1Ms(120);
Delay1Ms(120);
Delay1Ms(120);
*/
}
void Standby_lcd(void)
{
/*
LCD_Reg_Set(0x0007, 0x0033);
Delay1Ms(10);
LCD_Reg_Set(0x0007, 0x0023);
LCD_Reg_Set(0x0007, 0x0021);
Delay1Ms(10);
LCD_Reg_Set(0x0007, 0x0001);
Delay1Ms(10);
LCD_Reg_Set(0x0010, 0x0001);
Delay1Ms(10);
*/
}
void standby_return()
{
/*
LCD_Reg_Set(0x0010, 0x0000);
Delay1Ms(10);
LCD_Reg_Set(0x0007, 0x0001);
Delay1Ms(10);
LCD_Reg_Set(0x0007, 0x0021);
LCD_Reg_Set(0x0007, 0x0023);
Delay1Ms(10);
LCD_Reg_Set(0x0007, 0x0033);
Delay1Ms(10);
*/
}
//wjm 2.0 HX8309
void Display_off(void)
{
// LCD_Reg_Set(0x000B,0x0000);
// LCD_Reg_Set(0x0010,0x6020);
// LCD_Reg_Set(0x0007,0x0036);
// Delay1Ms(6);
// LCD_Reg_Set(0x0007,0x0026);
// Delay1Ms(6);
// LCD_Reg_Set(0x0007,0x0004);
// Delay1Ms(9);
// LCD_Reg_Set(0x0007,0x0037);
// Delay1Ms(10);
// LCD_Reg_Set(0x0011,0x0000);
// LCD_Reg_Set(0x0010,0x0000);
// LCD_Reg_Set(0x0012,0x0000);
// LCD_Reg_Set(0x0013,0x0000);
}
void LCDDEV_SetWindow(int x0, int y0, int x1, int y1)
{
#ifdef LCD_MEMORY_DEV
while(DmaFillImage2LcdFlag);
#endif
// LCD_Reg_Set(0x0044, y1<<8 | y0);
// LCD_Reg_Set(0x0045, x0);
// LCD_Reg_Set(0x0046, x1);
// LCD_SetDispAddr(x0, y0);
unsigned int Parameter1,Parameter2;
Parameter1 = x0 >>8;
Parameter2 = x1 >>8;
// LCD_Reg_Set(0x002a, y); //RAM Addr x
if( LcdScanType == 3){
LCD_Command(0x002b);
}
else{
LCD_Command(0x002a);
}
LCD_Data(Parameter1);
LCD_Data(x0);
LCD_Data(Parameter2);
LCD_Data(x1);
Parameter1 = y0 >>8;
Parameter2 = y1 >>8;
// LCD_Reg_Set(0x002a, y); //RAM Addr x
//write_mem(LCD_COMMAND,0x002a);
if( LcdScanType == 3){
LCD_Command(0x002a);
}
else{
LCD_Command(0x002b);
}
LCD_Data(Parameter1);
LCD_Data(y0);
LCD_Data(Parameter2);
LCD_Data(y1);
LCD_Command(0x002c);
}
void LCDDEV_RevertWindow(int x0, int y0, int x1, int y1)
{
/*
#ifdef LCD_MEMORY_DEV
while(DmaFillImage2LcdFlag);
#endif
LCD_Reg_Set(0x0044, y1<<8 | y0);
LCD_Reg_Set(0x0045, x0);
LCD_Reg_Set(0x0046, x1);
*/
#ifdef LCD_MEMORY_DEV
while(DmaFillImage2LcdFlag);
#endif
// LCD_Reg_Set(0x0044, y1<<8 | y0);
// LCD_Reg_Set(0x0045, x0);
// LCD_Reg_Set(0x0046, x1);
// LCD_SetDispAddr(x0, y0);
unsigned int Parameter1,Parameter2;
Parameter1 = x0 >>8;
Parameter2 = x1 >>8;
// LCD_Reg_Set(0x002a, y); //RAM Addr x
LCD_Command(0x002a);
LCD_Data(Parameter1);
LCD_Data(x0);
LCD_Data(Parameter2);
LCD_Data(x1);
Parameter1 = y0 >>8;
Parameter2 = y1 >>8;
// LCD_Reg_Set(0x002a, y); //RAM Addr x
LCD_Command(0x002b);
LCD_Data(Parameter1);
LCD_Data(y0);
LCD_Data(Parameter2);
LCD_Data(y1);
}
//void LCD_ReadBitmap(int x0, int y0, int xsize, int ysize, unsigned int *pData)
//{
// int x1, y1;
// x1 = x0+xsize-1;
// y1 = y0+ysize-1;
// LCDDEV_SetWindow(x0, y0, x1, y1);
// read_XDATA(LCD_DATA);
// for(y1=0; y1<ysize; y1++){
// for(x1=0; x1<xsize; x1++){
// *pData++ = read_XDATA(LCD_DATA);
// }
// }
//
// LCDDEV_RevertWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
//}
unsigned int LCDDEV_GetPixel(int x, int y)
{
// unsigned int color;
//
// LCD_SetDispAddr(x,y);
// color = read_XDATA(LCD_DATA);
// color = read_XDATA(LCD_DATA);
// return(color);
}
void LCDDEV_SetPixel(int x, int y, unsigned int color)
{
LCD_SetDispAddr(x,y);
LCD_Data(color); //color表示RGB值, 这个函数的功能是往(x,y)写入color值
}
void LCDDEV_XorPixel(int x, int y)
{
// unsigned int color;
// color = LCDDEV_GetPixel(x,y);
// LCDDEV_SetPixel(x,y,0xFFFF-color);
}
//length
void DMA_LcdJpegInitX(void)
{
LcdScanType = 1;
LCD_Command(0x0036);
LCD_Data(0x0060);
//LcdScanType = 3;
//LCD_Command(0x0036);
//LCD_Data(0x0000);
//LCD_Reg_Set(0x0001, 0x6B3F); //F
//LCD_Reg_Set(0x0011, 0x6038); //F
LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
}
//weight
void DMA_LcdJpegInit(void)
{
LcdScanType = 3;
LCD_Command(0x0036);
LCD_Data(0x0000);
//LcdScanType = 1;
//LCD_Reg_Set(0x0001, 0x2B3F); //F
//LCD_Reg_Set(0x0011, 0x6030); //F
LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
}
void MP4_LCD_Init(void)
{
//unsigned int x,y;
// LCD_Reg_Set(0x0001, 0x6B3F); //F
//LCD_Reg_Set(0x0011, 0x6030); //F
LcdScanType = 3;
LCD_Command(0x0036);
LCD_Data(0x0040);
//LCD_Command(0x002c);
// for(x=0; x<240; x++){
// for(y=0; y<320; y++){
// LCD_Data(0xf800);
// }
// }
//while(1);
// LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
}
void Game_LcdInit(void)
{
//unsigned int x,y;
// LCD_Reg_Set(0x0001, 0x6B3F); //F
//LCD_Reg_Set(0x0011, 0x6030); //F
LcdScanType = 3;
LCD_Command(0x0036);
LCD_Data(0x0000);
LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
//LCD_Command(0x002c);
// for(x=0; x<240; x++){
// for(y=0; y<320; y++){
// LCD_Data(0xf800);
// }
// }
//while(1);
// LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
}
void Game_LcdInit_180(void)
{
//unsigned int x,y;
// LCD_Reg_Set(0x0001, 0x6B3F); //F
//LCD_Reg_Set(0x0011, 0x6030); //F
LcdScanType = 3;
LCD_Command(0x0036);
LCD_Data(0x00c0);
LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
//LCD_Command(0x002c);
// for(x=0; x<240; x++){
// for(y=0; y<320; y++){
// LCD_Data(0xf800);
// }
// }
//while(1);
// LCDDEV_SetWindow(0, 0, LCD_MAX_XSIZE-1, LCD_MAX_YSIZE-1);
}
//******************************************************************************
void DMA_LcdBMPInitX(void)
{
}
void DMA_LcdBMPInitInvX(void)
{
}
//weight
void DMA_LcdBMPInit(void)
{
}
//weight
void DMA_LcdBMPInitInv(void)
{
}
/*
$Log: LCD_ST7787_QVGA.c,v $
*
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -