OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7194|回复: 3

请教st7793的LCD控制器的驱动问题

[复制链接]

7

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-12-23
在线时间
0 小时
发表于 2012-12-28 13:23:55 | 显示全部楼层 |阅读模式
      现在我有一块控制器为ST7793的LCD屏,3.2寸,400*240。我的该驱动初始化如下,但是总是显示白屏,怎么办?谁帮我分晰下情况:
     void LCD_Init(void)
RCC->APB2ENR|=1<<2;//先使能外设PORTA时钟
  RCC->APB2ENR|=1<<3;//先使能外设PORTB时钟
  RCC->APB2ENR|=1<<4;//先使能外设PORTC时钟

RCC->APB2ENR|=1<<0;    //开启辅助时钟
JTAG_Set(SWD_ENABLE);  //开启SWD
 
//PORTC6~9复用推挽输出 
GPIOA->CRH&=0X0FFFFFFF;
GPIOA->CRH|=0X30000000;
GPIOA->ODR|=1<<15;
GPIOC->CRH&=0XFFFFFF00;
GPIOC->CRH|=0X00000033; 
GPIOC->CRL&=0X00FFFFFF;
GPIOC->CRL|=0X33000000;  
GPIOC->ODR|=0X03C0;  
//PORTB 推挽输出
GPIOB->CRH=0X33333333;
GPIOB->CRL=0X33333333;  
GPIOB->ODR=0XFFFF;
LCD_RS_SET;
delay_ms (1); //Delay 1ms
LCD_RS_CLR;
delay_ms (1); //Delay 1ms
LCD_RS_SET;
delay_ms (10);
 
// delay_ms(50); // delay 50 ms 
// LCD_WriteReg(0x0000,0x0001);
// delay_ms(50); // delay 50 ms
// DeviceCode = LCD_ReadReg(0x0000);   
// printf(" LCD ID:%x\n",DeviceCode); //打印LCD ID   
      LCD_WriteReg(0x0001,0x0100);                                   
        LCD_WriteReg(0x0003,0x1030);           
        LCD_WriteReg(0x0008,0x0808);         
        LCD_WriteReg(0x0090,0x8000);        
        LCD_WriteReg(0x0400,0x6200);          
        LCD_WriteReg(0x0401,0x0001);
//-----------------------------------End Display Control setting-----------------------------------------//
//-------------------------------- Power Control Registers Initial --------------------------------------//         
        LCD_WriteReg(0x00ff,0x0001);
        LCD_WriteReg(0x0102,0x01b0);   
        LCD_WriteReg(0x0710,0x0016);
        LCD_WriteReg(0x0712,0x000f);                                                                 
        LCD_WriteReg(0x0752,0x002f);                  
        LCD_WriteReg(0x0724,0x001a);   
        LCD_WriteReg(0x0759,0x0070);
        LCD_WriteReg(0x0754,0x0018);                  
       //---------------------------------End Power Control Registers Initial -------------------------------//
delay_ms (100);
//----------------------------------Display Windows 240 X 400----------------------------------------//
        LCD_WriteReg(0x00210,0x0000);   
        LCD_WriteReg(0x00211,0x00ef);
        LCD_WriteReg(0x00212,0x0000); 
        LCD_WriteReg(0x00213,0x018f);                                                            
        //----------------------------------End Display Windows 240 X 400----------------------------------//
delay_ms(10);
//-------------------------------------Gamma Cluster Setting-------------------------------------------//
        LCD_WriteReg(0x0380,0x0000); 
        LCD_WriteReg(0x0381,0x3e1a);    
        LCD_WriteReg(0x0382,0x0a02);     
        LCD_WriteReg(0x0383,0x0614);
        LCD_WriteReg(0x0384,0x0111); 
        LCD_WriteReg(0x0385,0x0000);
        LCD_WriteReg(0x0386,0x9f15);        
        LCD_WriteReg(0x0387,0x0605);     
        LCD_WriteReg(0x0388,0x0612);
        LCD_WriteReg(0x0389,0x0111);
        //---------------------------------------End Gamma Setting---------------------------------------------//

//---------------------------------------Vcom Setting---------------------------------------------// 
        LCD_WriteReg(0x0702,0x0031); //水平GRAM起始位置                     
        LCD_WriteReg(0x00ff,0x0000); //垂直GRAM起始位置                    
       //---------------------------------------End Vcom Setting---------------------------------------------//  
        
        LCD_WriteReg(0x0007,0x0100);
delay_ms(200);
LCD_WriteReg(0x0200,0x0000);        
        LCD_WriteReg(0x0201,0x0000);
}


void LCD_WR_REG(u16 data)
LCD_RD_SET;//写地址  
  LCD_CS_CLR; 
LCD_WR_SET;
DATAOUT(data); 
LCD_WR_CLR;  
LCD_WR_SET; 
  LCD_CS_SET;   
}
u16 LCD_ReadReg(u16 LCD_Reg)
{   
u16 t;
LCD_WR_REG(LCD_Reg);  //写入要读的寄存器号  
GPIOB->CRL=0X88888888; //PB0-7  上拉输入
GPIOB->CRH=0X88888888; //PB8-15 上拉输入
GPIOB->ODR=0XFFFF;    //全部输出高
LCD_RD_SET;
LCD_CS_CLR;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD_CLR;
delay_us(5);//FOR 8989,延时5us   
LCD_RD_SET;
t=DATAIN; 
LCD_CS_SET; 
GPIOB->CRL=0X33333333; //PB0-7  上拉输出
GPIOB->CRH=0X33333333; //PB8-15 上拉输出
GPIOB->ODR=0XFFFF;    //全部输出高
return t;  
}   










正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2015-9-6
在线时间
36 小时
发表于 2019-8-27 08:31:31 | 显示全部楼层
你好!我现在出现跟你一样的问题,请问你的问题解决了吗?能否支下招
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2015-9-6
在线时间
36 小时
发表于 2019-8-27 10:11:04 | 显示全部楼层
曾翁 发表于 2019-8-27 08:31
你好!我现在出现跟你一样的问题,请问你的问题解决了吗?能否支下招

已经解决了,谢谢!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2019-8-6
在线时间
13 小时
发表于 2019-12-15 17:28:54 | 显示全部楼层
曾翁 发表于 2019-8-27 10:11
已经解决了,谢谢!

你好!请问是什么问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 00:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表