7652|18

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何在LCD 的驱动中增加一个SPI 初始化代码 [复制链接]

如何在LCD 的驱动中增加一个SPI 初始化代码,而SPI 是用GPIO 来模拟的,那在BSP 当中如何应用控制GPIO 呢!


PS:
主要目的就是在init.c 中的InitDisplay()中增加如下代码:
  #define HX_SCLK      (1 << 3)
  #define HX_CS        (1 << 2)
  #define HX_SDI       (1 << 4)
  #define LCD_RESET    (1 << 1)
  #define BL_EN        (1 << 1)
     
  #define SET_HX_SCLK     (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT|HX_SCLK )
  #define CLR_HX_SCLK     (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT&(~HX_SCLK) )
  #define SET_HX_CS       (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT|HX_CS )
  #define CLR_HX_CS       (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT&(~HX_CS) )
  #define SET_HX_SDI      (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT|HX_SDI )
  #define CLR_HX_SDI      (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT&(~HX_SDI) )
  #define SET_LCD_RESET   (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT|LCD_RESET )
  #define CLR_LCD_RESET   (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT&(~LCD_RESET) )
  #define SET_BL_EN   (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT|BL_EN )
  #define CLR_BL_EN   (s2440IOP->rGPFDAT=s2440IOP->rGPFDAT&(~BL_EN) )
//***********************************
  void HX8238intial(void);
  void Write_com(unsigned short SSD2123_index);
  void Write_register(unsigned short SSD2123_data);
  void Write_com_reg(unsigned short SSD2123_index, unsigned short SSD2123_data);
  // void Lcd_ClearScr_SPI(unsigned short DATA1);
  
//---------------------------------------------------------
  void HX8238intial(void)
  { Delay(10);
    CLR_LCD_RESET;
    Delay(10);
    SET_LCD_RESET;
        Delay(5);
    //********Enter initial LQ048Y3DH01 *******   
Write_com_reg(0x0001,0x0102);
Write_com_reg(0x0002,0x0400);
Write_com_reg(0x0003,0x28E7);//0x28E7
Write_com_reg(0x0004,0x4100);
Write_com_reg(0x000B,0x0019);
Write_com_reg(0x000C,0x700A);//0x700A
Write_com_reg(0x000D,0x0200);//0x0200
Write_com_reg(0x0011,0x1101);
Write_com_reg(0x0012,0x1020);
Write_com_reg(0x0013,0x0320);
Write_com_reg(0x0014,0x01E0);
Write_com_reg(0x0015,0x03E8);

Write_com_reg(0x0016,0x0C0A);
Write_com_reg(0x0017,0x0001);
Write_com_reg(0x0018,0x0000);
//*********gamma********************
Write_com_reg(0x0030,0x341F);
Write_com_reg(0x0031,0x0D1B);
Write_com_reg(0x0032,0x1301);
Write_com_reg(0x0033,0x6634);
Write_com_reg(0x0034,0x0034);
Write_com_reg(0x0035,0x0300);
Write_com_reg(0x0036,0x0D1B);
Write_com_reg(0x0037,0x1508);
Write_com_reg(0x0038,0x6634);
Write_com_reg(0x0039,0x8276);

Write_com_reg(0x0028,0x0006);
Write_com_reg(0x0022,0x0090);
Write_com_reg(0x003D,0x0290);
Write_com_reg(0x0021,0x0F5A);
Write_com_reg(0x003F,0x181B);
    Delay(20);
   
  }
//********************************
  void Write_com(unsigned short SSD2123_index)
  {     
  
      unsigned char HX_WR_COM=0x74;//74
      unsigned char i;
      SET_HX_CS  ;//SET_HX_CS;
      SET_HX_SDI ;//SET_HX_SDI;
      SET_HX_SCLK;//SET_HX_CLK;
      CLR_HX_CS;
      
      Delay(1);
      
      for(i=8;i>0;i--)
      {
      CLR_HX_SCLK;
     if (HX_WR_COM & 0x80)
      SET_HX_SDI;
     else
      CLR_HX_SDI;
      HX_WR_COM  <<= 1;
      
      Delay(1);
      SET_HX_SCLK;
      Delay(1);
      }
    for(i=0;i<16;i++) // 7 ~14 Data
    {
      CLR_HX_SCLK;
     if ( SSD2123_index& 0x8000)
      SET_HX_SDI;
     else
      CLR_HX_SDI;
       SSD2123_index<<= 1;
      Delay(1);
      SET_HX_SCLK;
      Delay(1);
    }
   
    SET_HX_SCLK;
    //Delay(1);
    //SET_HX_SDI ;//SET_HX_SDI;
    Delay(1);
    SET_HX_CS;      
     
  }
  
  //************************************
  void Write_register(unsigned short SSD2123_data)
  {     
         unsigned char HX_WR_COM=0x76;//76
    unsigned char i;
    SET_HX_CS  ;//SET_HX_CS;
    SET_HX_SDI ;//SET_HX_SDI;
    SET_HX_SCLK;//SET_HX_CLK;
    CLR_HX_CS;
   
   Delay(1);
    for(i=0;i<8;i++) // 2 ~6 ssd2123_reg
    {
     CLR_HX_SCLK;
    if (HX_WR_COM & 0x80)
     SET_HX_SDI;
     else
     CLR_HX_SDI;
     HX_WR_COM  <<= 1;
     
     Delay(1);
     SET_HX_SCLK;
     Delay(1);
    }
     for(i=0;i<16;i++) // 7 ~14 Data
   {
     CLR_HX_SCLK;
    if ( SSD2123_data& 0x8000)
     SET_HX_SDI;
    else
     CLR_HX_SDI;
     SSD2123_data<<= 1;
    Delay(1);
     SET_HX_SCLK;
  Delay(1);
     }
     
    SET_HX_SCLK;
   // Delay(1);
    //SET_HX_SDI ;//SET_HX_SDI;
    Delay(1);
    SET_HX_CS;
  }
  //******************************************************
  void Write_com_reg(unsigned short SSD2123_index, unsigned short SSD2123_data)
  {
   Write_com(SSD2123_index);
   Delay(5);
   Write_register( SSD2123_data);
   Delay(5);
  }

最新回复

......  详情 回复 发表于 2009-11-30 18:03
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
LCD初始化是在 bootloader完成的,所以楼主操作比较简单的了。

就在配置完LCD控制器之后 初始化即可。
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的问题看不懂,你代码都写出来了,还问怎么增加?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

4
 
BootLoader中怎么写的LCD,OAL中的InitDisplay也怎么加。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
你驱动IC用HX8238?
貌似有SPI接口的LCD也不需要接SPI
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 wangxin_801115 的回复:
你驱动IC用HX8238?
貌似有SPI接口的LCD也不需要接SPI


群创的就不用!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

13
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

14
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

15
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

16
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

17
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

18
 
查看本帖全部讨论,请登录或者注册
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

19
 
查看本帖全部讨论,请登录或者注册
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表