在stm32下ST7789V初始化不成功
按厂家给的初始化代码,只是点亮了背光灯,没有初始化成功。
代码如下:
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; 点亮前光灯
}