سلام به همه دوستان
من lcd 7inch با دیسکاوریstm32f407 راه اندازی کردم اما رفرش تصویر معلومه.فکر کنم از تامینگاش باشه.لطفا کمک کنید بچه ها.
مرسی
کد:
//Set MN(multipliers) of PLL, VCO = crystal freq * (N+1)
//PLL freq = VCO/M with 250MHz < VCO < 800MHz
//The max PLL freq is around 120MHz. To obtain 120MHz as the PLL freq
Write_Cmd(0xE2); // Set PLL with OSC = 10MHz (hardware)
// Multiplier N = 35, VCO (>250MHz)= OSC*(N+1), VCO = 360MHz
Write_Dat(0x23);
Write_Dat(0x02); // Divider M = 2, PLL = 360/(M+1) = 120MHz
Write_Dat(0x54); // Validate M and N values
Write_Cmd(0xE0); // Start PLL command
Write_Dat(0x01); // enable PLL
LCD_Delay(1); // wait stablize
Write_Cmd(0xE0); // Start PLL command again
Write_Dat(0x03); // now, use PLL output as system clock
Write_Cmd(0x01); // Soft reset
LCD_Delay(10);
//Set LSHIFT freq, i.e. the DCLK with PLL freq 120MHz set previously
//Typical DCLK for TY700TFT800480 is 33.3MHz(datasheet), experiment shows 30MHz gives a stable result
//30MHz = 120MHz*(LCDC_FPR+1)/2^20
//LCDC_FPR = 262143 (0x3FFFF)
//Time per line = (DISP_HOR_RESOLUTION+DISP_HOR_PULSE_WIDTH+DISP_HOR_BACK_PORCH+DISP_HOR_FRONT_PORCH)/30 us = 1056/30 = 35.2us
Write_Cmd(0xE6);
Write_Dat(0x01);//0x04
Write_Dat(0x33);//0xff
Write_Dat(0x32);//0xff
//Set panel mode, varies from individual manufacturer
Write_Cmd(0xB0);
Write_Dat(0x10); // set 18-bit for 7" panel TY700TFT800480
Write_Dat(0x80); // set TTL mode
Write_Dat((DISP_HOR_RESOLUTION-1)>>8); //Set panel size
Write_Dat(DISP_HOR_RESOLUTION-1);
Write_Dat((DISP_VER_RESOLUTION-1)>>8);
Write_Dat(DISP_VER_RESOLUTION-1);
Write_Dat(0x00); //RGB sequence
//Set horizontal period
Write_Cmd(0xB4);
#define HT (DISP_HOR_RESOLUTION+DISP_HOR_PULSE_WIDTH+DISP_HOR_BACK_PORCH+DISP_HOR_FRONT_PORCH)
Write_Dat((HT-1)>>8);
Write_Dat(HT-1);
#define HPS (DISP_HOR_PULSE_WIDTH+DISP_HOR_BACK_PORCH)
Write_Dat((HPS-1)>>8);
Write_Dat(HPS-1);
Write_Dat(DISP_HOR_PULSE_WIDTH-1);
Write_Dat(0x00);
Write_Dat(0x00);
Write_Dat(0x00);
//Set vertical period
Write_Cmd(0xB6);
#define VT (DISP_VER_PULSE_WIDTH+DISP_VER_BACK_PORCH+DISP_VER_FRONT_PORCH+DISP_VER_RESOLUTION)
Write_Dat((VT-1)>>8);
Write_Dat(VT-1);
#define VSP (DISP_VER_PULSE_WIDTH+DISP_VER_BACK_PORCH)
Write_Dat((VSP-1)>>8);
Write_Dat(VSP-1);
Write_Dat(DISP_VER_PULSE_WIDTH-1);
Write_Dat(0x00);
Write_Dat(0x00);
//Set pixel format, i.e. the bpp
Write_Cmd(0x3A);
Write_Dat(0x55); // set 16bpp
//Set pixel data interface
Write_Cmd(0xF0);
Write_Dat(0x03); //16-bit(565 format) data for 16bpp PIC32MX only
//Write_Dat(0x00); //8-bit data for 16bpp, PIC24 series
Write_Cmd(0x36);
Write_Dat(0x02);
Write_Cmd(0x29); // Turn on display; show the image on display
// LCD_Clear(BLACK);
// LCD_Clear(BLACK);