注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
jianping-sun的个人空间 https://home.eeworld.com.cn/space-uid-531927.html [收藏] [复制] [分享] [RSS]
日志

求助msp430驱动3.5吋tft液晶。。。

已有 1039 次阅读2014-12-11 15:21 |个人分类:学习

程序是移植的51上面的,51上面能正常跑,但是移植过来了就不能跑了,我把部分代码贴出来:
/**************控制端定义**************/
/*********选用P4口送DH,P3口送DL********/
/******P9.0控制CS端,P9.1控制RS端******/
/******P9.2控制WR端,P9.3控制RD端******/
/*************P9.4控制RES端************/
#define TFT_CS_1 P9OUT|=BIT0   //片选端
#define TFT_CS_0 P9OUT&=~BIT0
#define TFT_RS_1 P9OUT|=BIT2   //数据命令选择端
#define TFT_RS_0 P9OUT&=~BIT2
#define TFT_WR_1 P9OUT|=BIT1   //写
#define TFT_WR_0 P9OUT&=~BIT1
#define TFT_RD_1 P9OUT|=BIT3   //读
#define TFT_RD_0 P9OUT&=~BIT3
#define TFT_RES_1 P9OUT|=BIT4  //复位
#define TFT_RES_0 P9OUT&=~BIT4
/**************************************/

/*********单片机初始化函数*************/
void init_430()
{
  WDTCTL= WDTPW + WDTHOLD; // 关看门狗
  PMMCTL0_H=0xA5;//开PMM电源管理                             
  SVSMLCTL|=SVSMLRRL_1+SVMLE;//配置SVML电压
  PMMCTL0=PMMPW+PMMCOREV_2;//配置内核电压
  while((PMMIFG&SVSMLDLYIFG )==0);//等待设置完成
  PMMIFG&=~(SVMLVLRIFG + SVMLIFG+SVSMLDLYIFG);
  if((PMMIFG&SVMLIFG)==1)//判断内核电压是否上升到VSVML
  while((PMMIFG&SVMLVLRIFG)==0);//如果没有等待
  SVSMLCTL&=~SVMLE;//关掉SVML模块
  PMMCTL0_H =0X00;//锁存配置
  P5SEL |=0x0C; // Port select XT2
  UCSCTL6&=~XT2OFF; // Enable XT2 even if not used
  UCSCTL3|=SELREF_2; // FLLref = REFO
  UCSCTL4|=SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
  do
  {
    UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);
    SFRIFG1&=~OFIFG;// Clear fault flags
  }while(SFRIFG1&OFIFG);// Test oscillator fault flag
  UCSCTL4|=SELS_5+SELM_5;// SMCLK=MCLK=XT2
  //UCSCTL5|=DIVM_1+DIVS_2;
  P4DIR=0xff;
  P3DIR=0xff;
  P9DIR=0xff;
}
/**************************************/

void LCD_WR_DATA(uint Data)
{
  uchar DH,DL;
  DH=Data>>8;
  DL=Data;
  TFT_CS_0;
  //delayms(1);
  TFT_RS_1;
  //delayms(1);
  P4OUT=DH;
  P3OUT=DL;
  TFT_WR_0;
  //delayms(1);
  TFT_WR_1;
  //delayms(1);
  TFT_CS_1;
  //delayms(1);
}
/***************************************/



/***********LCD写寄存器*****************/
void LCD_WR_REG(uint Index)   
{
  uchar DH,DL;
  DH=Index>>8;
  DL=Index;
  TFT_CS_0;
  //delayms(1);
  TFT_RS_0;
  //delayms(1);
  P4OUT=DH;
  P3OUT=DL;
  TFT_WR_0;
  //delayms(1);
  TFT_WR_1;
  //delayms(1);
  TFT_CS_1;
  //delayms(1);
}
/**************************************/



/********在指定寄存器写数据************/
void LCD_WriteReg(uint Index,uint Data)
{
  LCD_WR_REG(Index);
  LCD_WR_DATA(Data);
}
/**************************************/



/**********初始化驱动芯片**************/
void ILI9481_Initial()
  LCD_WR_REG(0x11);
  delayms(20);
  LCD_WR_REG(0xD0);
  LCD_WR_DATA(0x07);
  LCD_WR_DATA(0x42);
  LCD_WR_DATA(0x18);
  LCD_WR_REG(0xD1);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x07);
  LCD_WR_DATA(0x10);
  LCD_WR_REG(0xD2);
  LCD_WR_DATA(0x01);
  LCD_WR_DATA(0x02);
  LCD_WR_REG(0xC0);
  LCD_WR_DATA(0x10);
  LCD_WR_DATA(0x3B);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x02);
  LCD_WR_DATA(0x11);
  LCD_WR_REG(0xC5);
  LCD_WR_DATA(0x03);
  LCD_WR_REG(0xC8);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x32);
  LCD_WR_DATA(0x36);
  LCD_WR_DATA(0x45);
  LCD_WR_DATA(0x06);
  LCD_WR_DATA(0x16);
  LCD_WR_DATA(0x37);
  LCD_WR_DATA(0x75);
  LCD_WR_DATA(0x77);
  LCD_WR_DATA(0x54);
  LCD_WR_DATA(0x0C);
  LCD_WR_DATA(0x00);
  LCD_WR_REG(0x36);
  LCD_WR_DATA(0x0A);
  LCD_WR_REG(0x3A);
  LCD_WR_DATA(0x55);
  LCD_WR_REG(0x2A);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x01);
  LCD_WR_DATA(0x3F);
  LCD_WR_REG(0x2B);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x00);
  LCD_WR_DATA(0x01);
  LCD_WR_DATA(0xE0);
  delayms(120);
  LCD_WR_REG(0x29);
  LCD_WR_REG(0x2c);
}
/***************************************/


/*************初始化函数****************/
void init_TFT()
{
  TFT_CS_1;
  delayms(50);
  TFT_RES_0;
  delayms(150);
  TFT_RES_1;
  delayms(50);
  ILI9481_Initial();
}
//以上是底层驱动函数
void main()
{
  init_430();
  init_TFT();
  P8DIR=0xff;
  while(1)
  {
    ClearScreen(BLACK);
    P8OUT=0xff;
    delayms(1000);
    P8OUT=0x00;
    delayms(1000);
  }
}
因为P8.1口接了一个led,测试的时候那个led是闪烁的,但是液晶只有背光亮,但是液晶拿到51上面去跑就正常,求大神帮忙看看哪儿错了哦,液晶驱动芯片是ILI9481,CPU是MSP430F5438A....

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章