在stm32下ST7789V初始化不成功

a124539194 2016-07-27 05:44:15
按厂家给的初始化代码,只是点亮了背光灯,没有初始化成功。
代码如下:

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; 点亮前光灯
}
...全文
4623 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
20090216 2019-06-24
  • 打赏
  • 举报
回复 1
初始化时CS脚要高电平。
qq_35523202 2019-01-19
  • 打赏
  • 举报
回复
你把wr=0移动到DATAOUT函数前边去试试
llq1036871091 2017-04-20
  • 打赏
  • 举报
回复
请问楼主问题解决了吗?我目前也碰到了这样的问题
zgl7903 2016-07-28
  • 打赏
  • 举报
回复
要注意 模拟操作的时序和时间问题, Datasheet上都应该有详细说明的 严格按时序图时许 每一个状态到下一个状态都需要满足最短时间要求

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧