打印
[屏驱相关]

SWM34SVET6驱动RGB NT5510

[复制链接]
609|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
袁胜富|  楼主 | 2023-11-26 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 袁胜富 于 2023-11-27 22:37 编辑
以下代码驱动不成功,求网友或原厂帮忙一下,十分感谢。
#include <string.h>

#include "SWM341.h"
#include "led.h"  
#include "ugui.h"
#include "delay.h"
extern const unsigned char gImage_Synwit128[32768];
/*-------------------------------------------------------- LCD背光引脚 -------------------------------------------------------*/

#define  LCD_Backlight_PIN                                                                PIN9                                                               
#define         LCD_Backlight_PORT                                                          GPIOD                                                                        


#define          LCD_Backlight_OFF                GPIO_AtomicClrBit(LCD_Backlight_PORT, LCD_Backlight_PIN)                // 关闭背光
#define         LCD_Backlight_ON                GPIO_AtomicSetBit(LCD_Backlight_PORT, LCD_Backlight_PIN)                // 开启背光
#define LCD_HDOT        800                // 水平点数
#define LCD_VDOT        480                // 垂直点数
#define LCD_SDA_Port                            GPIOA   // SPI-MOSI
#define LCD_SDA_PIN                        PIN12   //GPIO_PIN_12  LCD_G0
void LCD_SDA_WRITE(uint8_t x)
{
        if(x==1)
  {
                GPIO_SetBit(LCD_SDA_Port,LCD_SDA_PIN );
        }
        else
        {
                GPIO_ClrBit(LCD_SDA_Port,LCD_SDA_PIN );
        }
}
#define LCD_SCL_Port                            GPIOC   // SPI-SCK
#define LCD_SCL_PIN                        PIN8   //GPIO_PIN_8   LCD_R2
void LCD_SCL_WRITE(uint8_t x)            
{
        if(x==1)
        {
                GPIO_SetBit(LCD_SCL_Port,LCD_SCL_PIN );
        }
        else
        {
                GPIO_ClrBit(LCD_SCL_Port,LCD_SCL_PIN );
        }
}
#define LCD_CS_Port                              GPIOC   //SPI-CS
#define LCD_CS_PIN                        PIN4    //GPIO_PIN_4   LCD_R0
void LCD_CS_WRITE(uint8_t x)              
{
        if(x==1)
        {
                GPIO_SetBit(LCD_CS_Port,LCD_CS_PIN);
        }
        else
        {
                GPIO_ClrBit(LCD_CS_Port,LCD_CS_PIN );
        }
}
#define LCD_RST_Port                            GPIOA   // LCD_RST
#define LCD_RST_PIN                        PIN5    //GPIO_PIN_5   TOUCH_RST
void LCD_RST_WRITE(uint8_t x)            
{
        if(x==1)
        {
                GPIO_SetBit(LCD_RST_Port,LCD_RST_PIN );
        }
        else
        {
                GPIO_ClrBit(LCD_RST_Port,LCD_RST_PIN );
        }
}
#define LCD_BLK_ON            GPIO_SetBit(GPIOD,PIN9 )        // PD9
#define LCD_BLK_OFF           GPIO_ClrBit(GPIOD,PIN9 )        // PD9
#define LCD_CS_Clr            GPIO_ClrBit(LCD_CS_Port,LCD_CS_PIN )        // PC4
#define LCD_CS_Set            GPIO_SetBit(LCD_CS_Port,LCD_CS_PIN )        // PC4
//画笔颜色
#define WHITE        0xFFFF
#define BLACK        0x0000         
#define BLUE         0x001F  
#define BRED         0XF81F
#define GRED         0XFFE0
#define GBLUE        0X07FF
#define RED          0xF800
#define MAGENTA      0xF81F
#define GREEN        0x07E0
#define CYAN         0x7FFF
#define YELLOW       0xFFE0
#define BROWN        0XBC40 //棕色
#define BRRED        0XFC07 //棕红色
#define GRAY         0X8430 //灰色
//GUI颜色
#define DARKBLUE         0X01CF        //深蓝色
#define LIGHTBLUE        0X7D7C        //浅蓝色  
#define GRAYBLUE         0X5458 //灰蓝色
//以上三色为PANEL的颜色
#define LIGHTGREEN       0X841F //浅绿色
#define LIGHTGRAY        0XEF5B //浅灰色(PANNEL)
#define LGRAY            0XC618 //浅灰色(PANNEL),窗体背景色
#define LGRAYBLUE        0XA651 //浅灰蓝色(中间层颜色)
#define LBBLUE           0X2B12 //浅棕蓝色(选择条目的反色)
UG_GUI gui;


//uint16_t *LCD_Buffer1 = (uint16_t *)(SDRAMM_BASE + 0x000000);
//uint16_t *LCD_Buffer2 = (uint16_t *)(SDRAMM_BASE + 800*480*2);

//uint16_t *LCD_Buffer;
uint16_t POINT[5]={WHITE,BLUE,RED,YELLOW,GREEN};
uint16_t BACK[5]={LIGHTGREEN,LIGHTGRAY,LGRAY,LGRAYBLUE,LBBLUE};

uint16_t *ltdc_framebuf[2];
uint16_t *ltdc_lcd_framebuf0 = (uint16_t *)(SDRAMM_BASE + 0x000000);
uint16_t *ltdc_lcd_framebuf1 = (uint16_t *)(SDRAMM_BASE + 800*480*2);
//uint16_t ltdc_lcd_framebuf0[800][480] __attribute__((section(".ARM.__at_0x80000000"))); //图层0
//uint16_t ltdc_lcd_framebuf1[800][480] __attribute__((section(".ARM.__at_0x800BB800"))); //图层1
//uint16_t ltdc_lcd_framebuf0[800][480] __attribute__((section(".SDRAM"))); //图层0
//uint16_t ltdc_lcd_framebuf1[800][480] __attribute__((section(".SDRAM"))); //图层1
//LCD的画笔颜色和背景色           
uint16_t  POINT_COLOR=0x0000;        //画笔颜色
uint16_t  BACK_COLOR=0xFFFF;  //背景色


void mDelayuS(uint16_t us)
{
    while(us--)
    {
        __NOP();
        __NOP();
        __NOP();
        __NOP();
        __NOP();
        __NOP();
    }
}
void Write_3Spi_Byte(uint8_t CMD)
{
        uint8_t i;
        LCD_SCL_WRITE(0);
        // mDelayuS(10);
        for (i = 0; i < 8; i++)
        {
                LCD_SCL_WRITE(0);

                if ((CMD & 0x80) != 0)
                {
                        LCD_SDA_WRITE(1);
                }
                else
                {
                        LCD_SDA_WRITE(0);
                }

                LCD_SCL_WRITE(0);
                mDelayuS(1);
                LCD_SCL_WRITE(1);
                mDelayuS(1);
                CMD <<= 1;
        }
}

void Write_3Spi_cmd(uint16_t addr)
{
        LCD_CS_WRITE(0);
        mDelayuS(5);
        Write_3Spi_Byte(0x20);
        Write_3Spi_Byte(addr >> 8);

        Write_3Spi_Byte(0x00);
        Write_3Spi_Byte(addr);
        mDelayuS(5);
        LCD_CS_WRITE(1);
}

void Write_3Spi_data(uint8_t value)

{
        LCD_CS_WRITE(0);
        mDelayuS(5);
        Write_3Spi_Byte(0x40);
        Write_3Spi_Byte(value);
        mDelayuS(5);
        LCD_CS_WRITE(1);
}


void _HW_DrawPoint(UG_S16 x, UG_S16 y, UG_COLOR c)
{        
        //LCD_Buffer[y * 480 + x] = c;        // 在128X128大小的图层上绘图
//        
//  *(uint16_t *)((uint32_t)LCD_Buffer + 2 * (480 * (y) + x)) = c;
}

/////画点
void LTDC_Draw_Point(uint8_t layer, uint16_t x, uint16_t y, uint32_t color)
{
  *(uint16_t *)((uint32_t)ltdc_framebuf[layer] + 2 * (480 * (y) + x)) = color;
}
//清屏函数   
void LCD_Clear(uint8_t layer,uint16_t  color)
{
    uint32_t index=0;
    uint32_t totalpoint=480;
    totalpoint*=800; //得到总点数
    for(index=0;index<totalpoint;index++)
    {
        ltdc_framebuf[layer][index] = color;
    }
}
void SerialInit(void);
void MemoryInit(void);
void RGBLCDInit(void);

int main(void)
{
        uint32_t i, j;
//        SystemInit();
        SysTick_Init();        // 系统定时器初始化,1ms中断
        SerialInit();
        
//        MemoryInit();
        LED_Init();
        RGBLCDInit();
        LCD_Start(LCD);
        
        
        while(1)
        {
                        for(i=0;i<5;i++)
                        {
                                 
                                        POINT_COLOR=POINT;
                                        BACK_COLOR=BACK;
                                       
                                        LCD_Clear(1,BACK);
                                        Delay_ms(800);
                                  LED1_Toggle;
                        }
                        
        }
//        UG_Init(&gui,(void(*)(UG_S16,UG_S16,UG_COLOR))_HW_DrawPoint, LCD_HDOT, LCD_VDOT);
//        
//        LCD_Buffer = LCD_Buffer1;
//        UG_FillFrame(0, 0, 800, 480, C_RED);
//        UG_DrawLine(0, 0, 127, 127, C_BLUE);
//        UG_DrawLine(0, 127, 127, 0, C_BLUE);
//        
//        LCD_Buffer = LCD_Buffer2;
//        for(i = 0; i < 128*128; i++)
//                LCD_Buffer = ((const uint16_t *)gImage_Synwit128);
//        
//        UG_DrawCircle(63, 63, 63, C_GREEN);
//        UG_DrawCircle(63, 63, 62, C_GREEN);
//        UG_DrawCircle(63, 63, 61, C_GREEN);

//        UG_DrawLine(64, 0, 64, 127, C_GREEN);
//        UG_DrawLine(0, 64, 127, 64, C_GREEN);

        while(1==1)
        {               
//                for(i = 0; i < 9; i++)
//                {
//                        LCD_SetLayerPos(LCD, LCD_LAYER_1, (479 - 127)/8*i,       (479 - 127)/8*i + 127,       (271 - 127)/8*i,       (271 - 127)/8*i + 127);
//                        LCD_SetLayerPos(LCD, LCD_LAYER_2, (479 - 127)/8*(8 - i), (479 - 127)/8*(8 - i) + 127, (271 - 127)/8*(8 - i), (271 - 127)/8*(8 - i) + 127);
//                        
//                        for(j = 0; j < SystemCoreClock/4; j++) __NOP();
//                }
        }
}


void RGBLCDInit(void)
{
        uint32_t i;
        LCD_InitStructure LCD_initStruct;
        LCD_LayerInitStructure LCD_layerInitStruct;
        
        GPIO_Init(GPIOD, PIN9, 1, 0, 0, 0);                //屏幕背光
        GPIO_ClrBit(GPIOD, PIN9);
        GPIO_Init(GPIOA, PIN5, 1, 0, 0, 0);                //屏幕复位
        GPIO_ClrBit(GPIOA, PIN5);
        Delay_ms(500);
        GPIO_SetBit(GPIOA, PIN5);
        
        PORT_Init(PORTB, PIN1,  PORTB_PIN1_LCD_B0,  0);
        PORT_Init(PORTB, PIN11, PORTB_PIN11_LCD_B1, 0);
        PORT_Init(PORTB, PIN13, PORTB_PIN13_LCD_B2, 0);
        PORT_Init(PORTB, PIN15, PORTB_PIN15_LCD_B3, 0);
        PORT_Init(PORTA, PIN2,  PORTA_PIN2_LCD_B4,  0);
        PORT_Init(PORTA, PIN9,  PORTA_PIN9_LCD_B5,  0);
        PORT_Init(PORTA, PIN10, PORTA_PIN10_LCD_B6, 0);
        PORT_Init(PORTA, PIN11, PORTA_PIN11_LCD_B7, 0);
        PORT_Init(PORTA, PIN12, PORTA_PIN12_LCD_G0, 0);
        PORT_Init(PORTA, PIN13, PORTA_PIN13_LCD_G1, 0);
        PORT_Init(PORTA, PIN14, PORTA_PIN14_LCD_G2, 0);
        PORT_Init(PORTA, PIN15, PORTA_PIN15_LCD_G3, 0);
        PORT_Init(PORTC, PIN0,  PORTC_PIN0_LCD_G4,  0);
        PORT_Init(PORTC, PIN1,  PORTC_PIN1_LCD_G5,  0);
        PORT_Init(PORTC, PIN2,  PORTC_PIN2_LCD_G6,  0);
        PORT_Init(PORTC, PIN3,  PORTC_PIN3_LCD_G7,  0);
        PORT_Init(PORTC, PIN4,  PORTC_PIN4_LCD_R0,  0);
        PORT_Init(PORTC, PIN5,  PORTC_PIN5_LCD_R1,  0);
        PORT_Init(PORTC, PIN8,  PORTC_PIN8_LCD_R2,  0);
        PORT_Init(PORTC, PIN9,  PORTC_PIN9_LCD_R3,  0);
        PORT_Init(PORTC, PIN10, PORTC_PIN10_LCD_R4, 0);
        PORT_Init(PORTC, PIN11, PORTC_PIN11_LCD_R5, 0);
        PORT_Init(PORTC, PIN12, PORTC_PIN12_LCD_R6, 0);
        PORT_Init(PORTC, PIN13, PORTC_PIN13_LCD_R7, 0);
        PORT_Init(PORTB, PIN2,  PORTB_PIN2_LCD_VSYNC, 0);
        PORT_Init(PORTB, PIN3,  PORTB_PIN3_LCD_HSYNC, 0);
        PORT_Init(PORTB, PIN4,  PORTB_PIN4_LCD_DEN,   0);
        PORT_Init(PORTB, PIN5,  PORTB_PIN5_LCD_DCLK,  0);

// 初始化背光引脚
        LCD_Backlight_OFF;        // 先关闭背光引脚,初始化LCDC之后再开启
        GPIO_Init(LCD_Backlight_PORT, LCD_Backlight_PIN, 1, 0, 0, 0);                // 输出模式、禁止上拉、禁止下拉、推挽


        LCD_BLK_OFF;
        LCD_SCL_WRITE(1);
        LCD_CS_WRITE(1);
        LCD_SDA_WRITE(1);
        Delay_ms(200);
        LCD_RST_WRITE(1);
        Delay_ms(10);
        LCD_RST_WRITE(0);
        Delay_ms(50);
        LCD_RST_WRITE(1);
        Delay_ms(150);

        Write_3Spi_cmd(0xF000);
        Write_3Spi_data(0x55);
        Write_3Spi_cmd(0xF001);
        Write_3Spi_data(0xAA);
        Write_3Spi_cmd(0xF002);
        Write_3Spi_data(0x52);
        Write_3Spi_cmd(0xF003);
        Write_3Spi_data(0x08);
        Write_3Spi_cmd(0xF004);
        Write_3Spi_data(0x01); // Page 1

        //*************AVDD Set AVDD 5.2V*************//
        Write_3Spi_cmd(0xB000);
        Write_3Spi_data(0x0D);
        Write_3Spi_cmd(0xB001);
        Write_3Spi_data(0x0D);
        Write_3Spi_cmd(0xB002);
        Write_3Spi_data(0x0D);

        //************AVDD ratio****************//
        Write_3Spi_cmd(0xB600);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB601);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB602);
        Write_3Spi_data(0x34);

        //************AVEE  -5.2V****************//
        Write_3Spi_cmd(0xB100);
        Write_3Spi_data(0x0D);
        Write_3Spi_cmd(0xB101);
        Write_3Spi_data(0x0D);
        Write_3Spi_cmd(0xB102);
        Write_3Spi_data(0x0D);

        //***********AVEE ratio*************//
        Write_3Spi_cmd(0xB700);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB701);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB702);
        Write_3Spi_data(0x34);

        //***********VCL  -2.5V*************//
        Write_3Spi_cmd(0xB200);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xB201);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xB202);
        Write_3Spi_data(0x00);

        //**************VCL ratio*****************//
        Write_3Spi_cmd(0xB800);
        Write_3Spi_data(0x24);
        Write_3Spi_cmd(0xB801);
        Write_3Spi_data(0x24);
        Write_3Spi_cmd(0xB802);
        Write_3Spi_data(0x24);

        //*************VGH 15V  (Free pump)*********//
        Write_3Spi_cmd(0xBF00);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xB300);
        Write_3Spi_data(0x0F);
        Write_3Spi_cmd(0xB301);
        Write_3Spi_data(0x0F);
        Write_3Spi_cmd(0xB302);
        Write_3Spi_data(0x0F);

        //*************VGH ratio*****************//
        Write_3Spi_cmd(0xB900);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB901);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xB902);
        Write_3Spi_data(0x34);

        //***************VGL_REG -10V**************//
        Write_3Spi_cmd(0xB500);
        Write_3Spi_data(0x08);
        Write_3Spi_cmd(0xB501);
        Write_3Spi_data(0x08);
        Write_3Spi_cmd(0xB502);
        Write_3Spi_data(0x08);

        Write_3Spi_cmd(0xC200);
        Write_3Spi_data(0x03);

        //*****************VGLX ratio***************//
        Write_3Spi_cmd(0xBA00);
        Write_3Spi_data(0x24);
        Write_3Spi_cmd(0xBA01);
        Write_3Spi_data(0x24);
        Write_3Spi_cmd(0xBA02);
        Write_3Spi_data(0x24);

        //*************VGMP/VGSP 4.5V/0V*************//
        Write_3Spi_cmd(0xBC00);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xBC01);
        Write_3Spi_data(0x78);
        Write_3Spi_cmd(0xBC02);
        Write_3Spi_data(0x00);

        //************VGMN/VGSN -4.5V/0V****************//
        Write_3Spi_cmd(0xBD00);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xBD01);
        Write_3Spi_data(0x78);
        Write_3Spi_cmd(0xBD02);
        Write_3Spi_data(0x00);

        //************VCOM  -1.25V****************//
        Write_3Spi_cmd(0xBE00);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xBE01);
        Write_3Spi_data(0x64); // 67--------------

        //************Gamma Setting******************//
        Write_3Spi_cmd(0xD100);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD101);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD102);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD103);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD104);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD105);
        Write_3Spi_data(0x3a);
        Write_3Spi_cmd(0xD106);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD107);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD108);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD109);
        Write_3Spi_data(0x5c);
        Write_3Spi_cmd(0xD10A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD10B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD10C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD10D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD10E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD10F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD110);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD111);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD112);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD113);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD114);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD115);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD116);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD117);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD118);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD119);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD11A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD11B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD11C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD11D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD11E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD11F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD120);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD121);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD122);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD123);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD124);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD125);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD126);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD127);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD128);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD129);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD12A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD12B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD12C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD12D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD12E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD12F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD130);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD131);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD132);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD133);
        Write_3Spi_data(0x6D);

        Write_3Spi_cmd(0xD200);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD201);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD202);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD203);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD204);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD205);
        Write_3Spi_data(0x3A);
        Write_3Spi_cmd(0xD206);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD207);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD208);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD209);
        Write_3Spi_data(0x5C);
        Write_3Spi_cmd(0xD20A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD20B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD20C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD20D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD20E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD20F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD210);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD211);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD212);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD213);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD214);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD215);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD216);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD217);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD218);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD219);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD21A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD21B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD21C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD21D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD21E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD21F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD220);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD221);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD222);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD223);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD224);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD225);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD226);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD227);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD228);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD229);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD22A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD22B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD22C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD22D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD22E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD22F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD230);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD231);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD232);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD233);
        Write_3Spi_data(0x6D);

        Write_3Spi_cmd(0xD300);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD301);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD302);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD303);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD304);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD305);
        Write_3Spi_data(0x3A);
        Write_3Spi_cmd(0xD306);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD307);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD308);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD309);
        Write_3Spi_data(0x5C);
        Write_3Spi_cmd(0xD30A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD30B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD30C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD30D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD30E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD30F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD310);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD311);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD312);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD313);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD314);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD315);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD316);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD317);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD318);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD319);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD31A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD31B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD31C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD31D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD31E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD31F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD320);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD321);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD322);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD323);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD324);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD325);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD326);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD327);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD328);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD329);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD32A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD32B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD32C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD32D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD32E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD32F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD330);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD331);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD332);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD333);
        Write_3Spi_data(0x6D);

        Write_3Spi_cmd(0xD400);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD401);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD402);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD403);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD404);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD405);
        Write_3Spi_data(0x3A);
        Write_3Spi_cmd(0xD406);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD407);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD408);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD409);
        Write_3Spi_data(0x5C);
        Write_3Spi_cmd(0xD40A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD40B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD40C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD40D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD40E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD40F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD410);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD411);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD412);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD413);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD414);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD415);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD416);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD417);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD418);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD419);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD41A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD41B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD41C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD41D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD41E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD41F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD420);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD421);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD422);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD423);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD424);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD425);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD426);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD427);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD428);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD429);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD42A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD42B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD42C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD42D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD42E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD42F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD430);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD431);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD432);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD433);
        Write_3Spi_data(0x6D);

        Write_3Spi_cmd(0xD500);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD501);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD502);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD503);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD504);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD505);
        Write_3Spi_data(0x3A);
        Write_3Spi_cmd(0xD506);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD507);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD508);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD509);
        Write_3Spi_data(0x5C);
        Write_3Spi_cmd(0xD50A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD50B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD50C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD50D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD50E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD50F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD510);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD511);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD512);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD513);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD514);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD515);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD516);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD517);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD518);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD519);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD51A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD51B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD51C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD51D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD51E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD51F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD520);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD521);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD522);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD523);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD524);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD525);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD526);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD527);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD528);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD529);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD52A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD52B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD52C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD52D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD52E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD52F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD530);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD531);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD532);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD533);
        Write_3Spi_data(0x6D);

        Write_3Spi_cmd(0xD600);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD601);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD602);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD603);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD604);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD605);
        Write_3Spi_data(0x3A);
        Write_3Spi_cmd(0xD606);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD607);
        Write_3Spi_data(0x4A);
        Write_3Spi_cmd(0xD608);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD609);
        Write_3Spi_data(0x5C);
        Write_3Spi_cmd(0xD60A);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD60B);
        Write_3Spi_data(0x81);
        Write_3Spi_cmd(0xD60C);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD60D);
        Write_3Spi_data(0xA6);
        Write_3Spi_cmd(0xD60E);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD60F);
        Write_3Spi_data(0xE5);
        Write_3Spi_cmd(0xD610);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD611);
        Write_3Spi_data(0x13);
        Write_3Spi_cmd(0xD612);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD613);
        Write_3Spi_data(0x54);
        Write_3Spi_cmd(0xD614);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD615);
        Write_3Spi_data(0x82);
        Write_3Spi_cmd(0xD616);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD617);
        Write_3Spi_data(0xCA);
        Write_3Spi_cmd(0xD618);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD619);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xD61A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD61B);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xD61C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD61D);
        Write_3Spi_data(0x34);
        Write_3Spi_cmd(0xD61E);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD61F);
        Write_3Spi_data(0x67);
        Write_3Spi_cmd(0xD620);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD621);
        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xD622);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD623);
        Write_3Spi_data(0xA4);
        Write_3Spi_cmd(0xD624);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD625);
        Write_3Spi_data(0xB7);
        Write_3Spi_cmd(0xD626);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD627);
        Write_3Spi_data(0xCF);
        Write_3Spi_cmd(0xD628);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD629);
        Write_3Spi_data(0xDE);
        Write_3Spi_cmd(0xD62A);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD62B);
        Write_3Spi_data(0xF2);
        Write_3Spi_cmd(0xD62C);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xD62D);
        Write_3Spi_data(0xFE);
        Write_3Spi_cmd(0xD62E);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD62F);
        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xD630);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD631);
        Write_3Spi_data(0x33);
        Write_3Spi_cmd(0xD632);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xD633);
        Write_3Spi_data(0x6D);

        //**************LV2 Page 0 enable*************//
        Write_3Spi_cmd(0xF000);
        Write_3Spi_data(0x55);
        Write_3Spi_cmd(0xF001);
        Write_3Spi_data(0xAA);
        Write_3Spi_cmd(0xF002);
        Write_3Spi_data(0x52);
        Write_3Spi_cmd(0xF003);
        Write_3Spi_data(0x08);
        Write_3Spi_cmd(0xF004);
        Write_3Spi_data(0x00); // Page 0

// Write_3Spi_cmd(0xB000);        Write_3Spi_data(0x00);//add RGB mode2
// Write_3Spi_cmd(0xB001);        Write_3Spi_data(0x10);
// Write_3Spi_cmd(0xB002);        Write_3Spi_data(0x10);
// Write_3Spi_cmd(0xB003);        Write_3Spi_data(0x10);
// Write_3Spi_cmd(0xB004);        Write_3Spi_data(0x10);
        Write_3Spi_cmd(0xB300);
        Write_3Spi_data(0x00);

        //*************480x800*********************//
        Write_3Spi_cmd(0xB500);
        Write_3Spi_data(0x50);

        //***************Display control**************//
        Write_3Spi_cmd(0xB100);
        Write_3Spi_data(0xCC);
        Write_3Spi_cmd(0xB101);
        Write_3Spi_data(0x00);

        //***************Source hold time*************//
        Write_3Spi_cmd(0xB600);
        Write_3Spi_data(0x05);

        //**************Gate EQ control***************//
        Write_3Spi_cmd(0xB700);
        Write_3Spi_data(0x70);
        Write_3Spi_cmd(0xB701);
        Write_3Spi_data(0x70);

        //*************Source EQ control (Mode 2)******//
        Write_3Spi_cmd(0xB800);
        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xB801);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xB802);
        Write_3Spi_data(0x03);
        Write_3Spi_cmd(0xB803);
        Write_3Spi_data(0x03);

        //************Inversion mode  (2-dot)***********//
        Write_3Spi_cmd(0xBC00);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xBC01);
        Write_3Spi_data(0x00);
        Write_3Spi_cmd(0xBC02);
        Write_3Spi_data(0x00);

        //***************Frame rate***************//
        /*
        Write_3Spi_cmd(0xBD00);        Write_3Spi_data(0x01);
        Write_3Spi_cmd(0xBD01);        Write_3Spi_data(0x84);
        Write_3Spi_cmd(0xBD02);        Write_3Spi_data(0x1C);  //0X1C
        Write_3Spi_cmd(0xBD03);        Write_3Spi_data(0x1C);
        Write_3Spi_cmd(0xBD04);        Write_3Spi_data(0x00);*/

        //********Timing control 4H w/ 4-Delayms *******//
        Write_3Spi_cmd(0xC900);
        Write_3Spi_data(0xD0);
        Write_3Spi_cmd(0xC901);
        Write_3Spi_data(0x02);
        Write_3Spi_cmd(0xC902);
        Write_3Spi_data(0x50);
        Write_3Spi_cmd(0xC903);
        Write_3Spi_data(0x50);
        Write_3Spi_cmd(0xC904);
        Write_3Spi_data(0x50);

        Write_3Spi_cmd(0x3600);
        Write_3Spi_data(0x00); // 00
        Write_3Spi_cmd(0x3500);
        Write_3Spi_data(0x00);

        Write_3Spi_cmd(0x3A00);
        Write_3Spi_data(0x55);
        Write_3Spi_cmd(0x1100);
        Delay_ms(120);
        Write_3Spi_cmd(0x2900);
        Delay_ms(10);
        Write_3Spi_cmd(0x2C00);
        
        
//        lcdltdc.hbp = 20; //水平后廊
//        lcdltdc.hfp = 40; //水平前廊
//        lcdltdc.hsw = 10; //水平同步宽度

//        lcdltdc.vbp = 10;                                                //垂直后廊
//        lcdltdc.vfp = 15;                                                //垂直前廊
//        lcdltdc.vsw = 10;                                                //垂直同步宽度
        Delay_ms(100);
        ltdc_framebuf[0] = (uint16_t *)<dc_lcd_framebuf0;
        LCD_initStruct.ClkDiv = 10;
        LCD_initStruct.Format = LCD_FMT_RGB565;
        LCD_initStruct.HnPixel = LCD_HDOT;
        LCD_initStruct.VnPixel = LCD_VDOT;
        LCD_initStruct.Hfp                         = 40;                                                        // 其它的参数可参考屏幕的手册进行配置
        LCD_initStruct.Hbp                         = 20;
        LCD_initStruct.Vfp                         = 15;
        LCD_initStruct.Vbp                         = 10;
        LCD_initStruct.HsyncWidth         = 10;
        LCD_initStruct.VsyncWidth         = 10;
        LCD_initStruct.DataSource = (uint32_t)SDRAMM_BASE;
        LCD_initStruct.Background = C_GRAY;
        LCD_initStruct.SampleEdge = LCD_SAMPLE_RISE;        // ATK-4342 RGBLCD 下降沿采样
        LCD_initStruct.IntEOTEn = 0;
        LCD_Init(LCD, &LCD_initStruct);
        

        LCD_layerInitStruct.Alpha = 0x00;
        LCD_layerInitStruct.HStart = 0;
        LCD_layerInitStruct.HStop = 800;
        LCD_layerInitStruct.VStart = 0;
        LCD_layerInitStruct.VStop = 480;
        LCD_layerInitStruct.DataSource = (uint32_t)ltdc_framebuf[0];
        LCD_LayerInit(LCD, LCD_LAYER_1, &LCD_layerInitStruct);
        
        ltdc_framebuf[1] = (uint16_t *)<dc_lcd_framebuf1;
        LCD_layerInitStruct.Alpha = 0x00;
        LCD_layerInitStruct.HStart = 0;
        LCD_layerInitStruct.HStop = 800;
        LCD_layerInitStruct.VStart = 0;
        LCD_layerInitStruct.VStop = 480;
        LCD_layerInitStruct.DataSource = (uint32_t)ltdc_framebuf[1];
        LCD_LayerInit(LCD, LCD_LAYER_2, &LCD_layerInitStruct);
        
        /* Color Keying */
        LCD->L[LCD_LAYER_1].LCR |= (1 << LCD_LCR_CKEN_Pos);
        LCD->L[LCD_LAYER_1].CK = C_WHITE;
        LCD_BLK_ON;
}

void LCD_Handler(void)
{        
        LCD_INTClr(LCD);
        
        LCD_Start(LCD);
}


void MemoryInit(void)
{
        SDRAM_InitStructure SDRAM_InitStruct;
        
        PORT_Init(PORTM, PIN13, PORTM_PIN13_SDR_CLK, 0);
        PORT_Init(PORTM, PIN14, PORTM_PIN14_SDR_CKE, 0);
        PORT_Init(PORTB, PIN7,  PORTB_PIN7_SDR_WE,   0);
        PORT_Init(PORTB, PIN8,  PORTB_PIN8_SDR_CAS,  0);
        PORT_Init(PORTB, PIN9,  PORTB_PIN9_SDR_RAS,  0);
        PORT_Init(PORTB, PIN10, PORTB_PIN10_SDR_CS,  0);
        PORT_Init(PORTE, PIN15, PORTE_PIN15_SDR_BA0, 0);
        PORT_Init(PORTE, PIN14, PORTE_PIN14_SDR_BA1, 0);
        PORT_Init(PORTN, PIN14, PORTN_PIN14_SDR_A0,  0);
        PORT_Init(PORTN, PIN13, PORTN_PIN13_SDR_A1,  0);
        PORT_Init(PORTN, PIN12, PORTN_PIN12_SDR_A2,  0);
        PORT_Init(PORTN, PIN11, PORTN_PIN11_SDR_A3,  0);
        PORT_Init(PORTN, PIN10, PORTN_PIN10_SDR_A4,  0);
        PORT_Init(PORTN, PIN9,  PORTN_PIN9_SDR_A5,   0);
        PORT_Init(PORTN, PIN8,  PORTN_PIN8_SDR_A6,   0);
        PORT_Init(PORTN, PIN7,  PORTN_PIN7_SDR_A7,   0);
        PORT_Init(PORTN, PIN6,  PORTN_PIN6_SDR_A8,   0);
        PORT_Init(PORTN, PIN3,  PORTN_PIN3_SDR_A9,   0);
        PORT_Init(PORTN, PIN15, PORTN_PIN15_SDR_A10, 0);
        PORT_Init(PORTN, PIN2,  PORTN_PIN2_SDR_A11,  0);
        PORT_Init(PORTM, PIN15, PORTM_PIN15_SDR_A12, 0);
        PORT_Init(PORTE, PIN7,  PORTE_PIN7_SDR_D0,   1);
        PORT_Init(PORTE, PIN6,  PORTE_PIN6_SDR_D1,   1);
        PORT_Init(PORTE, PIN5,  PORTE_PIN5_SDR_D2,   1);
        PORT_Init(PORTE, PIN4,  PORTE_PIN4_SDR_D3,   1);
        PORT_Init(PORTE, PIN3,  PORTE_PIN3_SDR_D4,   1);
        PORT_Init(PORTE, PIN2,  PORTE_PIN2_SDR_D5,   1);
        PORT_Init(PORTE, PIN1,  PORTE_PIN1_SDR_D6,   1);
        PORT_Init(PORTE, PIN0,  PORTE_PIN0_SDR_D7,   1);
        PORT_Init(PORTE, PIN8,  PORTE_PIN8_SDR_D8,   1);
        PORT_Init(PORTE, PIN9,  PORTE_PIN9_SDR_D9,   1);
        PORT_Init(PORTE, PIN10, PORTE_PIN10_SDR_D10, 1);
        PORT_Init(PORTE, PIN11, PORTE_PIN11_SDR_D11, 1);
        PORT_Init(PORTE, PIN12, PORTE_PIN12_SDR_D12, 1);
        PORT_Init(PORTE, PIN13, PORTE_PIN13_SDR_D13, 1);
        PORT_Init(PORTC, PIN14, PORTC_PIN14_SDR_D14, 1);
        PORT_Init(PORTC, PIN15, PORTC_PIN15_SDR_D15, 1);
        PORT_Init(PORTB, PIN6,  PORTB_PIN6_SDR_LDQM, 0);
        PORT_Init(PORTM, PIN12, PORTM_PIN12_SDR_UDQM,0);
        
        SDRAM_InitStruct.Size = SDRAM_SIZE_8MB;
        SDRAM_InitStruct.ClkDiv = SDRAM_CLKDIV_1;
        SDRAM_InitStruct.CASLatency = SDRAM_CASLATENCY_2;
        SDRAM_InitStruct.TimeTRP  = SDRAM_TRP_3;
        SDRAM_InitStruct.TimeTRCD = SDRAM_TRCD_3;
        SDRAM_InitStruct.TimeTRFC  = SDRAM_TRFC_15;
        SDRAM_Init(&SDRAM_InitStruct);
}


void SerialInit(void)
{
        UART_InitStructure UART_initStruct;
        
        PORT_Init(PORTM, PIN0, PORTM_PIN0_UART0_RX, 1);                //GPIOM.0配置为UART0输入引脚
         PORT_Init(PORTM, PIN1, PORTM_PIN1_UART0_TX, 0);                //GPIOM.1配置为UART0输出引脚
         
         UART_initStruct.Baudrate = 57600;
        UART_initStruct.DataBits = UART_DATA_8BIT;
        UART_initStruct.Parity = UART_PARITY_NONE;
        UART_initStruct.StopBits = UART_STOP_1BIT;
        UART_initStruct.RXThresholdIEn = 0;
        UART_initStruct.TXThresholdIEn = 0;
        UART_initStruct.TimeoutIEn = 0;
         UART_Init(UART0, &UART_initStruct);
        UART_Open(UART0);
}

///******************************************************************************************************************************************
//* 函数名称: fputc()
//* 功能说明: printf()使用此函数完成实际的串口打印动作
//* 输    入: int ch                要打印的字符
//*                        FILE *f                文件句柄
//* 输    出: 无
//* 注意事项: 无
//******************************************************************************************************************************************/
//int fputc(int ch, FILE *f)
//{
//        UART_WriteByte(UART0, ch);
//        
//        while(UART_IsTXBusy(UART0));
//         
//        return ch;
//}


2.LCD.zip

3 MB

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

159

帖子

2

粉丝