ILI9235白屏问题

skevil 2013-08-21 08:13:33
我用的是msp430的,然后我是照着51的例子改写的,然后又在网上跟那些msp430写的例子对过了,都没错,为什么还一直是白屏呢?
然后我想问问
这上面的NC是什么,是不是背景的电源?
...全文
339 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skevil 2013-08-24
  • 打赏
  • 举报
回复
引用 8 楼 skevil 的回复:
[quote=引用 1 楼 lhfslhfs 的回复:] Not Connect或者No Connection。就是这个引脚不需要接的意思,说明这个芯片对于你这个电路,这个引脚不需要使用。 在控制电路里面NC是常关闭,是英文Normally Close(正常关闭)缩写。 还有相对的一个词为NO,常开。
请问下RS和RESET都是重启的意思吗?有什么差别??[/quote] 呃。。没事了,搞混了
skevil 2013-08-24
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
Not Connect或者No Connection。就是这个引脚不需要接的意思,说明这个芯片对于你这个电路,这个引脚不需要使用。 在控制电路里面NC是常关闭,是英文Normally Close(正常关闭)缩写。 还有相对的一个词为NO,常开。
请问下RS和RESET都是重启的意思吗?有什么差别??
youzi722 2013-08-22
  • 打赏
  • 举报
回复
我觉得你的先确认一下通信接口的时序是否有问题 可以读一下ILI9235里有固定值的寄存器(有几个寄存器保留位是固定的,而且非全0也非全1),看读出来是否是正确的,如果是正确的,证明底层的接口时序没问题,再找其他原因;如果读出来的值不正确,说明你底层接口时序有问题。 当然也可以直接上示波器,和datasheet中的时序比较一下。
skevil 2013-08-22
  • 打赏
  • 举报
回复
引用 5 楼 woshi_ziyu 的回复:
看一下连接方式 程序的引脚定义和连接方式相符
我查了5遍了,引脚没错了。。。还是一直白屏。。。
woshi_ziyu 2013-08-22
  • 打赏
  • 举报
回复
看一下连接方式 程序的引脚定义和连接方式相符
skevil 2013-08-21
  • 打赏
  • 举报
回复
引用 3 楼 lhfslhfs 的回复:
线路不对,或者程序不对都有可能。你什么具体信息也没有,别人没法给你下诊断。
#include <msp430x14x.h>
#include <intrinsics.h>
#include"GUI.h"
#define uchar unsigned char
#define uint unsigned int

//==========芯片资料定义=======
#define WINDOW_XADDR_START	0x0050 // Horizontal Start Address Set
#define WINDOW_XADDR_END	0x0051 // Horizontal End Address Set
#define WINDOW_YADDR_START	0x0052 // Vertical Start Address Set
#define WINDOW_YADDR_END	0x0053 // Vertical End Address Set
#define GRAM_XADDR		    0x0020 // GRAM Horizontal Address Set
#define GRAM_YADDR		    0x0021 // GRAM Vertical Address Set
#define GRAMWR 			    0x0022 // memory write





#define RS_1 P3OUT|=BIT1  //数据p30
#define RS_0 P3OUT&=~BIT1  //命令

#define WR_1 P3OUT|=BIT2   //写 先置1再置0p31
#define WR_0 P3OUT&=~BIT2 

#define RD_1 P3OUT|=BIT3   //读 先置1再置0p32
#define RD_0 P3OUT|=BIT3   

#define CS_1 P3OUT|=BIT4  //片选p33
#define CS_0 P3OUT&=~BIT4

#define RST_1 P3OUT|=BIT5 //复位p34
#define RST_0 P3OUT&=~BIT5  

uint color[]=

{0xf800,0x07e0,0x001f,0xffe0,0x0000,0xffff,0x07ff,0xf81f};
//对应颜色是    红,   绿,   蓝,   黄  , 黑  , 白  , 天蓝 , 紫



void DelayMS(uint MS);
void DelayUS(uint US);
void InitPort(void);
void Write_Cmd_Data(uchar cmd,uint data);
void Write_Cmd(uchar DH,uchar DL);
void Write_Data(uchar DH,uchar DL);
void ILI9325_Initial(void);
void Write_Data_U16(uint data);
void LCD_test();
void LCD_SetWindow(uchar x0,uint y0,uchar x1,uint y1);
void LCD_setxy(uchar x,uint y);
void PIC_Point(uchar x,uint y,uint color);
void PIC_Clear(uint B_color);





void DelayMS(uint MS)
{
  uchar i;
  for(i=MS;i>0;i--)
  {
    __delay_cycles(1000);
  }
  
 
}


void DelayUS(uint US)
{
  uchar i;
  for(i=US;i>0;i--)
  {
    __delay_cycles(1);
  }

}

void InitPort(void)//端口初始化
{
  P3DIR=0XFF;
  P4DIR=0XFF;//数据口

}


void Write_Cmd_Data(uchar cmd,uint data)//写命令数据(cmd指向寄存器,data表示存入的数据)
{
  uchar m,n;
  m=data>>8;
  n=data;
  Write_Cmd(0x00,cmd);
  Write_Data(m,n);
    
}


void Write_Cmd(uchar DH,uchar DL)//写命令
{
  CS_0;
  RS_0;
  P4OUT=DH;
  WR_1;
  WR_0;//写高位
  P4OUT=DL;
  WR_1;
  WR_0;//写低位
  CS_1;

}

void Write_Data(uchar DH,uchar DL)//写数据
{
   CS_0;
  RS_1;
  P4OUT=DH;
  WR_1;
  WR_0;//写高位
  P4OUT=DL;
  WR_1;
  WR_0;//写低位
  CS_1;

}

void Write_Data_U16(uint data)
{
  uchar m,n;
  m=data>>8;//高八位 
  n=data;//低八位
  Write_Data(m,n);

}

void ILI9325_Initial(void)//屏幕初始化
{

  InitPort();
  CS_1;
  DelayMS(10);
  RST_0;
  DelayMS(10);
  RST_1;
 
  DelayMS(60);//保障稳定显示(慢慢调整)
  //显示设置
  Write_Cmd_Data(0x0001,0x0100); 
 Write_Cmd_Data(0x0002,0x0700); 
 Write_Cmd_Data(0x0003,0x1030); 
 Write_Cmd_Data(0x0004,0x0000); 
 Write_Cmd_Data(0x0008,0x0207);  
 Write_Cmd_Data(0x0009,0x0000);
 Write_Cmd_Data(0x000A,0x0000); 
 Write_Cmd_Data(0x000C,0x0000); 
 Write_Cmd_Data(0x000D,0x0000);
 Write_Cmd_Data(0x000F,0x0000);
  //电源设置
  Write_Cmd_Data(0x0010,0x0000);   
 Write_Cmd_Data(0x0011,0x0007);  
 Write_Cmd_Data(0x0012,0x0000);  
 Write_Cmd_Data(0x0013,0x0000); 
 //vgh 
 Write_Cmd_Data(0x0010,0x1290);   
 Write_Cmd_Data(0x0011,0x0227);
 
  //vregiout 
 Write_Cmd_Data(0x0012,0x001d); //0x001b
 //delayms(100); 
 //vom amplitude
 Write_Cmd_Data(0x0013,0x1500);
 //delayms(100); 
 //vom H
 Write_Cmd_Data(0x0029,0x0018); 
 Write_Cmd_Data(0x002B,0x000D); 
 //伽玛矫正
 Write_Cmd_Data(0x0030,0x0004);
 Write_Cmd_Data(0x0031,0x0307);
 Write_Cmd_Data(0x0032,0x0002);// 0006
 Write_Cmd_Data(0x0035,0x0206);
 Write_Cmd_Data(0x0036,0x0408);
 Write_Cmd_Data(0x0037,0x0507); 
 Write_Cmd_Data(0x0038,0x0204);//0200
 Write_Cmd_Data(0x0039,0x0707); 
 Write_Cmd_Data(0x003C,0x0405);// 0504
 Write_Cmd_Data(0x003D,0x0F02); 
 
//窗口设置
 Write_Cmd_Data(0x0050,0x0000); 
 Write_Cmd_Data(0x0051,0x00EF);
 Write_Cmd_Data(0x0052,0x0000); 
 Write_Cmd_Data(0x0053,0x013F);  
 Write_Cmd_Data(0x0060,0xA700); 
 Write_Cmd_Data(0x0061,0x0001); 
 Write_Cmd_Data(0x006A,0x0000); 
 //
 Write_Cmd_Data(0x0080,0x0000); 
 Write_Cmd_Data(0x0081,0x0000); 
 Write_Cmd_Data(0x0082,0x0000); 
 Write_Cmd_Data(0x0083,0x0000); 
 Write_Cmd_Data(0x0084,0x0000); 
 Write_Cmd_Data(0x0085,0x0000); 
 //
 Write_Cmd_Data(0x0090,0x0010); 
 Write_Cmd_Data(0x0092,0x0600); 
 Write_Cmd_Data(0x0093,0x0003); 
 Write_Cmd_Data(0x0095,0x0110); 
 Write_Cmd_Data(0x0097,0x0000); 
 Write_Cmd_Data(0x0098,0x0000);
 Write_Cmd_Data(0x0007,0x0133);
 



}
//设置显示窗口
void LCD_SetWindow(uchar x0,uint y0,uchar x1,uint y1)
{
  Write_Cmd_Data(WINDOW_XADDR_START,x0);//水平显示起始坐标
  Write_Cmd_Data(WINDOW_XADDR_END,x1);//水平显示结束坐标
  Write_Cmd_Data(WINDOW_YADDR_START,y0);
  Write_Cmd_Data(WINDOW_YADDR_END,y1);
  Write_Cmd_Data(GRAM_XADDR,x0);//设置x坐标位置
  Write_Cmd_Data(GRAM_YADDR,y0);//设置y坐标位置
  Write_Cmd(0x00,GRAMWR );

}
//彩屏自测
void LCD_test()
{
  
  
  uint temp,num;
  uchar n,c;
  //显示彩条
  LCD_SetWindow(0,0,239,319);//240X320分辨率
  for(n=0;n<8;n++)
  {
    temp=color[n];
    for(num=40*240;num>0;num--)
      Write_Data_U16(temp);//写入颜色
    
  }
  DelayMS(1);
  
  //显示单色彩色
  for(c=0;c<8;c++)
  {
    temp=color[c];
    LCD_SetWindow(0,0,239,319);
    for(n=0;n<240;n++)//可能属于等待机制
    {
      for(num=0;num<320;num++)
        Write_Data_U16(temp);
    }
  
  }
  DelayMS(1);
  

}

//单点显示
void LCD_setxy(uchar x,uint y)
{
  LCD_SetWindow(x,y,x,y);

}


//清除显示内容,恢复为背景颜色
void PIC_Clear(uint B_color)
{
  uint i,j;
  LCD_SetWindow(0,0,240,320);
  for(i=0;i<320;i++)
  {
    for(j=0;j<240;j++)
      Write_Data_U16(B_color);
      P2DIR=0XFF;
  P2OUT=0X00;
  }

}


void PIC_Point(uchar x,uint y,uint color)
{
  LCD_setxy(x,y);
  Write_Data_U16(color);


}
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  ILI9325_Initial();
  PIC_Clear(0xf800);
  while(1)
  {
      //PIC_Clear(0xf800);
  }
}

青松2 2013-08-21
  • 打赏
  • 举报
回复
线路不对,或者程序不对都有可能。你什么具体信息也没有,别人没法给你下诊断。
skevil 2013-08-21
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
Not Connect或者No Connection。就是这个引脚不需要接的意思,说明这个芯片对于你这个电路,这个引脚不需要使用。 在控制电路里面NC是常关闭,是英文Normally Close(正常关闭)缩写。 还有相对的一个词为NO,常开。
谢谢,我之前把它接到5V上了 请问下白屏是什么原因引起的呢???
青松2 2013-08-21
  • 打赏
  • 举报
回复
Not Connect或者No Connection。就是这个引脚不需要接的意思,说明这个芯片对于你这个电路,这个引脚不需要使用。 在控制电路里面NC是常关闭,是英文Normally Close(正常关闭)缩写。 还有相对的一个词为NO,常开。

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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