TFT LCD display initialization code

TFT LCD display initialization code

TFT LCD 디스플레이의 초기화 코드는 주로 디스플레이가 이미지와 텍스트를 올바르게 표시 할 수 있도록 디스플레이의 작동 매개 변수 및 상태를 설정하는 데 사용됩니다. 초기화 코드의 역할과 원리는 주로 다음과 같은 측면을 포함합니다:

하드웨어 초기화

초기화를 시작할 때 일반적으로 리셋 핀을 낮게 또는 높게 당겨서 하드웨어 리셋 작업을 수행하여 LCD가 알려진 상태에서 작동을 시작하도록 합니다.

인터페이스 구성

초기화 코드는 일반적으로 LCD와 마이크로컨트롤러 간의 통신 인터페이스(예: SPI, I2C 또는 병렬 인터페이스)를 구성합니다. LCD 모듈마다 서로 다른 통신 인터페이스를 지원할 수 있으므로 초기화 중에 올바르게 구성해야 후속 데이터를 원활하게 전송할 수 있습니다.

전원 구성

LCD는 일반적으로 공급 전압, 바이어스 전압 및 충전 펌프와 같은 전원 매개변수로 구성해야 합니다. 이러한 구성은 디스플레이의 밝기, 대비 및 안정성에 직접적인 영향을 미칩니다.

디스플레이 모드 설정

여기에는 화면 해상도, 색심도, 스캔 방향(가로 또는 세로), 픽셀 형식(RGB565, RGB666 등) 및 이미지 표시와 관련된 기타 매개변수 설정이 포함됩니다.

등록 구성

초기화 과정에서 명암 조정, 감마 보정, 밝기 조정, 색상 형식 설정 등 디스플레이의 다양한 기능을 제어하는 LCD의 다양한 제어 레지스터에 특정 값을 기록해야 합니다.

선명한 화면 작동

초기화가 끝나면 일반적으로 화면의 모든 픽셀을 검은색 또는 흰색으로 설정하여 화면이 깨끗하고 디스플레이 콘텐츠가 남아 있지 않도록 하는 클리어 작업이 수행됩니다.

디스플레이 켜기

위의 구성을 완료한 후 마지막 단계는 일반적으로 LCD가 이미지 데이터 수신 및 표시를 시작할 수 있도록 디스플레이 기능을 켜는 것입니다.

요약하면 다음과 같습니다.

초기화 코드는 LCD 디스플레이가 제대로 작동하기 위한 기초입니다. 초기화 코드를 실행하면 LCD의 다양한 작동 파라미터가 설정되어 디스플레이가 올바른 모드로 작동하고 콘텐츠를 안정적이고 선명하게 표시할 수 있습니다. 초기화 단계가 불완전하거나 잘못되면 이미지가 표시되지 않거나 디스플레이 내용이 왜곡되거나 색상이 올바르지 않는 등 디스플레이 이상이 발생할 수 있습니다.

ILI9341V 코드

//************* Start Initial Sequence **********// 
LCD_CTRL_ILI9341(0xCF);  
LCD_DATA_ILI9341(0x00); 
LCD_DATA_ILI9341(0xC1); 
LCD_DATA_ILI9341(0X30); 
LCD_CTRL_ILI9341(0xED);  
LCD_DATA_ILI9341(0x64); 
LCD_DATA_ILI9341(0x03); 
LCD_DATA_ILI9341(0X12); 
LCD_DATA_ILI9341(0X81); 
LCD_CTRL_ILI9341(0xE8);  
LCD_DATA_ILI9341(0x85); 
LCD_DATA_ILI9341(0x10); 
LCD_DATA_ILI9341(0x78); 
LCD_CTRL_ILI9341(0xCB);  
LCD_DATA_ILI9341(0x39); 
LCD_DATA_ILI9341(0x2C); 
LCD_DATA_ILI9341(0x00); 
LCD_DATA_ILI9341(0x34); 
LCD_DATA_ILI9341(0x02); 
LCD_CTRL_ILI9341(0xF7);  
LCD_DATA_ILI9341(0x20); 
LCD_CTRL_ILI9341(0xEA);  
LCD_DATA_ILI9341(0x00); 
LCD_DATA_ILI9341(0x00); 
LCD_CTRL_ILI9341(0xC0);    //Power control 
LCD_DATA_ILI9341(0x21);   //VRH[5:0] 
LCD_CTRL_ILI9341(0xC1);    //Power control 
LCD_DATA_ILI9341(0x12);   //SAP[2:0];BT[3:0] 
LCD_CTRL_ILI9341(0xC5);    //VCM control 
LCD_DATA_ILI9341(0x40); //32
LCD_DATA_ILI9341(0x3c); //3//3c
LCD_CTRL_ILI9341(0xC7);    //VCM control2 
LCD_DATA_ILI9341(0X94);  //0xb2//0x9c
LCD_CTRL_ILI9341(0x36);    // Memory Access Control 
LCD_DATA_ILI9341(0x08); 
LCD_CTRL_ILI9341(0x3A);   
LCD_DATA_ILI9341(0x55); 
LCD_CTRL_ILI9341(0xB1);   
LCD_DATA_ILI9341(0x00);   
LCD_DATA_ILI9341(0x17); 
LCD_CTRL_ILI9341(0xB6);    // Display Function Control 
LCD_DATA_ILI9341(0x0A); 
LCD_DATA_ILI9341(0xA2); 
LCD_CTRL_ILI9341(0xF6);    
LCD_DATA_ILI9341(0x01); 
LCD_DATA_ILI9341(0x30); 
LCD_CTRL_ILI9341(0xF2);    // 3Gamma Function Disable 
LCD_DATA_ILI9341(0x00); 
LCD_CTRL_ILI9341(0x26);    //Gamma curve selected 
LCD_DATA_ILI9341(0x01); 
LCD_CTRL_ILI9341(0xE0);    //Set Gamma 
LCD_DATA_ILI9341(0x0F); 
LCD_DATA_ILI9341(0x20); 
LCD_DATA_ILI9341(0x1E); 
LCD_DATA_ILI9341(0x07); 
LCD_DATA_ILI9341(0x0A); 
LCD_DATA_ILI9341(0x03); 
LCD_DATA_ILI9341(0x52); 
LCD_DATA_ILI9341(0X63); 
LCD_DATA_ILI9341(0x44); 
LCD_DATA_ILI9341(0x08); 
LCD_DATA_ILI9341(0x17); 
LCD_DATA_ILI9341(0x09); 
LCD_DATA_ILI9341(0x19); 
LCD_DATA_ILI9341(0x13); 
LCD_DATA_ILI9341(0x00); 
LCD_CTRL_ILI9341(0XE1);    //Set Gamma 
LCD_DATA_ILI9341(0x00); 
LCD_DATA_ILI9341(0x16); 
LCD_DATA_ILI9341(0x19); 
LCD_DATA_ILI9341(0x02); 
LCD_DATA_ILI9341(0x0F); 
LCD_DATA_ILI9341(0x03); 
LCD_DATA_ILI9341(0x2F); 
LCD_DATA_ILI9341(0x13); 
LCD_DATA_ILI9341(0x40); 
LCD_DATA_ILI9341(0x01); 
LCD_DATA_ILI9341(0x08); 
LCD_DATA_ILI9341(0x07); 
LCD_DATA_ILI9341(0x2E); 
LCD_DATA_ILI9341(0x3C); 
LCD_DATA_ILI9341(0x0F); 
LCD_CTRL_ILI9341(0x11);    //Exit Sleep 
LCD_Delayms(120); 
LCD_CTRL_ILI9341(0x29);    //Display on 

LCD 디스플레이 카테고리

LCD Interface Categories

최근 게시물

위로 스크롤