HX8369 驱动调试总结

NOTE:首先确定自己需要什么样的LCD接口,有大致份分MCU和RGB两种,买LCM之前一定要说清避免买回来的不能用,还有一定要给LCM厂要模组资料以及IC资料和调试代码,节省自己的宝贵时间。

我因为使用的是s3c2440 CPU所以就选择了RGB接口的LCM。

拿到LCM后首先看其数据手册,按照数据手册画LCD的电路,一定要仔细看手册,按照手册将相应的无用引脚做接地或拉高处理。

连接完成后一定要仔细检查电气连通性,尤其FPC连通测试。

调试尽量先用熟悉的单片机将屏点亮。测试初始化代码以及屏的好坏。


1.初始化

任何一个LCD屏都是要初始化的,无论是MCU接口还是RGB接口。

对于RGB接口使用的是3线或4线的SPI串口初始化,对于MCU接口使用80或86接口初始化,具体需要根据芯片手册或屏的手册在引脚上做配置。

对于HX8369:




根据上面的说明配置引脚选择接口模式

我的配置是 1101即3线SPI 的RGB接口模式

配置完接口接下来就是调试初始化代码了,一下的代码是基于stm32的  //NOTE:一定要跟模组厂要对代码,大部分模组厂说我给你的代码没问题,但是呵呵了,注意代码中的延时

#include "lcd_botton.h"
#include "core_cm3.h"
#include "sysTick.h"

//*************************定义控制引脚的宏**********************************//
#define  set_cs  GPIO_SetBits(GPIOD, GPIO_Pin_9)
#define  reset_cs  GPIO_ResetBits(GPIOD, GPIO_Pin_9)
#define  set_clk  GPIO_SetBits(GPIOD, GPIO_Pin_1)
#define  reset_clk  GPIO_ResetBits( GPIOD, GPIO_Pin_1)
#define  set_sdi  GPIO_SetBits(GPIOD, GPIO_Pin_8)
#define  reset_sdi  GPIO_ResetBits( GPIOD, GPIO_Pin_8)
#define  set_res  GPIO_SetBits(GPIOD, GPIO_Pin_0)
#define  reset_res  GPIO_ResetBits(GPIOD, GPIO_Pin_0)




 //*******控制引脚的初始化***********************//
  
void LCD_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure; 
    /* 使能FSMC对应相应管脚时钟*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , ENABLE);
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
    
    set_cs;
set_res;
    set_clk;
    set_sdi;
 
}

//************复位lcd函数************//
void rest_lcd()
{
  set_res;
    Delay_us(10000);
    reset_res;
Delay_us(10000);
set_res;
    Delay_us(120000);
}


//***********发送命令函数*****************//
void send_cmd(uint8_t cmd)
{
  unsigned char i;
reset_cs;
 Delay_us(10);
reset_clk;
reset_sdi;
Delay_us(100);
set_clk;
 Delay_us(100);
for(i=0;i<8;i++)
    {
    reset_clk; 
  
      if (cmd&0x80)
       {
          set_sdi;
        }
       else
         {
         reset_sdi;
}
    Delay_us(100);
      set_clk;
Delay_us(100);
      cmd=cmd<<1;
    }
set_cs;
 Delay_us(10);
}


//**************发送数据函数**********************//
void send_date(uint8_t date)
{
  unsigned char i;
 reset_cs;
 Delay_us(10);
reset_clk;
set_sdi;
Delay_us(100);
set_clk;
 Delay_us(100);
for(i=0;i<8;i++)
    {
    reset_clk; 
  
      if (date&0x80)
       {
          set_sdi;
        }
       else
         {
         reset_sdi;
}
    Delay_us(100);
      set_clk;
Delay_us(100);
      date=date<<1;
    }
set_cs;
 Delay_us(10);
 
}

//*************配置HX8369函数*****************//
 void lcd_config()
 {


 rest_lcd(); //首先初始化


send_cmd(0xB9);  // 设置扩展命令,按照芯片手册填入数据
        send_date(0xFF);     
        send_date(0x83);     
        send_date(0x69);  
  
        send_cmd(0xB1);  //设置电压  ,相关参数参照芯片手册设置 
        send_date(0x01);                             
        send_date(0x00);                             
        send_date(0x34);                             
        send_date(0x06);                             
        send_date(0x00);                             
        send_date(0x11);                             
        send_date(0x11);                             
        send_date(0x2A);        //    VSPR regulator output control setting for source data output driving  根据需要调节这个                     
        send_date(0x32);          //     VSNR regulator output control setting for source data output driving           根据需要调节这个        
        send_date(0x3F);          //  The positive polarity gamma amplitude voltage setting (VSPR-VGSP).          根据需要调节这个         
        send_date(0x3F);           // The negitive polarity gamma amplitude voltage setting (VSNR-VGSN).          根据需要调节这个         
        send_date(0x07);                             
        send_date(0x23);                             
        send_date(0x01);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);  
  
  
        send_cmd(0xB2);  // 设置显示参数480*800
        send_date(0x00);     
        send_date(0x2B);     //设置分辨率 接口模式根据需要设置
        send_date(0x03);     
        send_date(0x03);     
        send_date(0x70);     
        send_date(0x00);     
        send_date(0xFF);     
        send_date(0x00);    
        send_date(0x00);   
        send_date(0x00);   
        send_date(0x00);   
        send_date(0x03);     
        send_date(0x03);     
        send_date(0x00);     
        send_date(0x01);  
  
        send_cmd(0xB4);  // 设置显示波形  480*800
        send_date(0x00);     //00 列 05 1dot 0A 2dot 根据需要配置
        send_date(0x0C);     
        send_date(0xA0);   
        send_date(0x0E);     
        send_date(0x06);  
  
        send_cmd(0xB6);  // 设置VCOM 电压大小
        send_date(0x10);     
        send_date(0x10);  
  
  
        send_cmd(0xD5);  // This command is used for GIP timing output control.   对于RGB接口很重要
        send_date(0x00);     
        send_date(0x05);     
        send_date(0x03);     
        send_date(0x00);     
        send_date(0x01);     
        send_date(0x09);     
        send_date(0x10);     
        send_date(0x80);     
        send_date(0x37);     
        send_date(0x37);     
        send_date(0x20);     
        send_date(0x31);     
        send_date(0x46);     
        send_date(0x8A);     
        send_date(0x57);     
        send_date(0x9B);     
        send_date(0x20);     
        send_date(0x31);     
        send_date(0x46);     
        send_date(0x8A);     
        send_date(0x57);     
        send_date(0x9B);     
        send_date(0x07);     
        send_date(0x0F);     
        send_date(0x02);     
        send_date(0x00);  
  
        send_cmd(0xE0); // Set gamma curve related setting 设置色调曲线的
        send_date(0x00);   
        send_date(0x08);   
        send_date(0x0D);   
        send_date(0x2D);   
        send_date(0x34);   
        send_date(0x3F);   
        send_date(0x19);   
        send_date(0x38);   
        send_date(0x09);   
        send_date(0x0E);   
        send_date(0x0E);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x13);   
        send_date(0x19);   
        send_date(0x00);   
        send_date(0x08);   
        send_date(0x0D);   
        send_date(0x2D);   
        send_date(0x34);   
        send_date(0x3F);   
        send_date(0x19);   
        send_date(0x38);   
        send_date(0x09);   
        send_date(0x0E);   
        send_date(0x0E);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x13);   
        send_date(0x19);   
  Delay_us(50000);   
  
    send_cmd(0xC1);   //设置调色板 一定要设置
    send_date(0x01); //enable DGC function   
    send_date(0x02); //SET R-GAMMA   
    send_date(0x08);   
    send_date(0x12);   
    send_date(0x1A);   
    send_date(0x22);   
    send_date(0x2A);   
    send_date(0x31);   
    send_date(0x36);   
    send_date(0x3F);   
    send_date(0x48);   
    send_date(0x51);   
    send_date(0x58);   
    send_date(0x60);   
    send_date(0x68);   
    send_date(0x70);   
    send_date(0x78);   
    send_date(0x80);   
    send_date(0x88);   
    send_date(0x90);   
    send_date(0x98);   
    send_date(0xA0);   
    send_date(0xA7);   
    send_date(0xAF);   
    send_date(0xB6);   
    send_date(0xBE);   
    send_date(0xC7);   
    send_date(0xCE);   
    send_date(0xD6);   
    send_date(0xDE);   
    send_date(0xE6);   
    send_date(0xEF);   
    send_date(0xF5);   
    send_date(0xFB);   
    send_date(0xFC);   
    send_date(0xFE);   
    send_date(0x8C);   
    send_date(0xA4);   
    send_date(0x19);   
    send_date(0xEC);   
    send_date(0x1B);   
    send_date(0x4C);   
    send_date(0x40);     
    
    send_date(0x02); //SET G-Gamma   
    send_date(0x08);   
    send_date(0x12);   
    send_date(0x1A);   
    send_date(0x22);   
    send_date(0x2A);   
    send_date(0x31);   
    send_date(0x36);   
    send_date(0x3F);   
    send_date(0x48);   
    send_date(0x51);   
    send_date(0x58);   
    send_date(0x60);   
    send_date(0x68);   
    send_date(0x70);   
    send_date(0x78);   
    send_date(0x80);   
    send_date(0x88);   
    send_date(0x90);   
    send_date(0x98);   
    send_date(0xA0);   
    send_date(0xA7);   
    send_date(0xAF);   
    send_date(0xB6);   
    send_date(0xBE);   
    send_date(0xC7);   
    send_date(0xCE);   
    send_date(0xD6);   
    send_date(0xDE);   
    send_date(0xE6);   
    send_date(0xEF);   
    send_date(0xF5);   
    send_date(0xFB);   
    send_date(0xFC);   
    send_date(0xFE);   
    send_date(0x8C);   
    send_date(0xA4);   
    send_date(0x19);   
    send_date(0xEC);   
    send_date(0x1B);   
    send_date(0x4C);   
    send_date(0x40);   
      
    send_date(0x02); //SET B-Gamma   
    send_date(0x08);   
    send_date(0x12);   
    send_date(0x1A);   
    send_date(0x22);   
    send_date(0x2A);   
    send_date(0x31);   
    send_date(0x36);   
    send_date(0x3F);   
    send_date(0x48);   
    send_date(0x51);   
    send_date(0x58);   
    send_date(0x60);   
    send_date(0x68);   
    send_date(0x70);   
    send_date(0x78);   
    send_date(0x80);   
    send_date(0x88);   
    send_date(0x90);   
    send_date(0x98);   
    send_date(0xA0);   
    send_date(0xA7);   
    send_date(0xAF);   
    send_date(0xB6);   
    send_date(0xBE);   
    send_date(0xC7);   
    send_date(0xCE);   
    send_date(0xD6);   
    send_date(0xDE);   

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值