按廠家給的初始化代碼,只是點亮了背光燈,沒有初始化成功。
代碼如下:
void LCD_RESET(void)
{
LCD_RST = 1;
delay_ms(1);
LCD_RST = 0;
delay_ms(10);
LCD_RST = 1;
delay_ms(120);
}
void LCD_WR_REG(u8 data)
{
LCD_CS = 0;
LCD_RD = 1;
LCD_DC = 0;
DATAOUT(data);
LCD_WR = 0;
LCD_WR = 1;
LCD_CS = 1;
LCD_DC = 1;
}
void LCD_WR_DATA(u8 data)
{
LCD_CS=0;
LCD_DC=1;
LCD_RD=1;
DATAOUT(data>>8);
DATAOUT(data);
LCD_WR=0;
LCD_WR=1;
LCD_CS=1;
}
void LCD_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_All);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
void LCD_Init(void)
{
LCD_Configuration();
LCD_RESET();
//***************************************************************//LCD SETING
LCD_WR_REG(0x3A);
LCD_WR_DATA(0x05);
LCD_WR_REG(0x36);
LCD_WR_DATA(0x00);
//--------------------------------ST7789S Frame rate setting----------------------------------//
LCD_WR_REG(0xb2);
LCD_WR_DATA(0x05);
LCD_WR_DATA(0x05);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x33);
LCD_WR_DATA(0x33);
LCD_WR_REG(0xb7);
LCD_WR_DATA(0x35);
//---------------------------------ST7789S Power setting--------------------------------------//
LCD_WR_REG(0xbb);
LCD_WR_DATA(0x3F);//vcom
LCD_WR_REG(0xc0);
LCD_WR_DATA(0x2C);//
LCD_WR_REG(0xc2);
LCD_WR_DATA(0x01);//
LCD_WR_REG(0xc3);
LCD_WR_DATA(0x0F);//
LCD_WR_REG(0xc4);
LCD_WR_DATA(0x20);
LCD_WR_REG(0xc6);
LCD_WR_DATA(0x11);
LCD_WR_REG(0xd0);
LCD_WR_DATA(0xa4);
LCD_WR_DATA(0xa1);
LCD_WR_REG(0xe8);
LCD_WR_DATA(0x03);
LCD_WR_REG(0xe9);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x08);
//--------------------------------ST7789S gamma setting---------------------------------------//
LCD_WR_REG(0xe0);
LCD_WR_DATA(0xd0);
LCD_WR_DATA(0x05);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x08);
LCD_WR_DATA(0x14);
LCD_WR_DATA(0x28);
LCD_WR_DATA(0x33);
LCD_WR_DATA(0x3F);
LCD_WR_DATA(0x07);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x14);
LCD_WR_DATA(0x28);
LCD_WR_DATA(0x30);
LCD_WR_REG(0xe1);
LCD_WR_DATA(0xd0);
LCD_WR_DATA(0x05);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x08);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x24);
LCD_WR_DATA(0x32);
LCD_WR_DATA(0x32);
LCD_WR_DATA(0x3B);
LCD_WR_DATA(0x38);
LCD_WR_DATA(0x14);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x28);
LCD_WR_DATA(0x2F);
LCD_WR_REG(0x21);
LCD_WR_REG(0x2A); //Frame rate control
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0xEF);
LCD_WR_REG(0x2B); //Display function control
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x01);
LCD_WR_DATA(0x3F);
LCD_WR_REG(0x11);
delay_ms(120); //Delay 120ms
LCD_WR_REG(0x29); //display on
LCD_WR_REG(0x2c);
LCD_LED = 1; 點亮前光燈
}
uj5u.com熱心網友回復:
要注意 模擬操作的時序和時間問題, Datasheet上都應該有詳細說明的嚴格按時序圖時許
每一個狀態到下一個狀態都需要滿足最短時間要求
uj5u.com熱心網友回復:
請問樓主問題解決了嗎?我目前也碰到了這樣的問題uj5u.com熱心網友回復:
你把wr=0移動到DATAOUT函式前邊去試試uj5u.com熱心網友回復:
初始化時CS腳要高電平。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/117167.html
標籤:驅動開發/核心開發
