找回密码
 注册
搜索
查看: 843|回复: 3

[讨论] 请教有人调过SPFD54126这个lcd drv ic的驱动吗?

[复制链接]
发表于 2007-12-18 13:50:11 | 显示全部楼层 |阅读模式
LCD_BlockWrite()中要用到哪几个寄存器?
我目前用的是2Ah,2Bh,30h,29h,不知道是不是对的,
目前的现象是花屏?
发表于 2007-12-18 15:16:04 | 显示全部楼层
试试下面的代码看看!

                SET_LCD_CMD_PARAMETER(0,LCD_CMD,0x2a);
        SET_LCD_CMD_PARAMETER(1,LCD_DATA,0);
        SET_LCD_CMD_PARAMETER(2,LCD_DATA,startx);
        SET_LCD_CMD_PARAMETER(3,LCD_DATA,0);
        SET_LCD_CMD_PARAMETER(4,LCD_DATA,endx
       
        SET_LCD_CMD_PARAMETER(5,LCD_CMD,0x2b);
        SET_LCD_CMD_PARAMETER(6,LCD_DATA,0x00);
               SET_LCD_CMD_PARAMETER(7,LCD_DATA,starty);
               SET_LCD_CMD_PARAMETER(8,LCD_DATA,0);
        SET_LCD_CMD_PARAMETER(9,LCD_DATA,endy
       
        SET_LCD_CMD_PARAMETER(10,LCD_CMD,0x2c);
点评回复

使用道具 举报

 楼主| 发表于 2007-12-19 09:32:45 | 显示全部楼层
mikal ,你好!
这个屏用的是8位的数据线,#define LCD_8BIT_MODE
#define MAIN_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_RGB565_1
LCD_BlockWrite()函数改成这样了
SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x002A >> 8));
SET_LCD_CMD_PARAMETER(1,LCD_CMD, (0x002A & 0x00FF));
SET_LCD_CMD_PARAMETER(2,LCD_DATA, (endx & 0x00FF));
SET_LCD_CMD_PARAMETER(3,LCD_DATA, (startx & 0x00FF));
SET_LCD_CMD_PARAMETER(4,LCD_CMD, (0x002B>> 8));
SET_LCD_CMD_PARAMETER(5,LCD_CMD, (0x002B & 0x00FF));
SET_LCD_CMD_PARAMETER(6,LCD_DATA, (endy & 0x00FF));
SET_LCD_CMD_PARAMETER(7,LCD_DATA, (starty & 0x00FF));
SET_LCD_CMD_PARAMETER(8,LCD_CMD, (0x002c >> 8));                                                       
SET_LCD_CMD_PARAMETER(9,LCD_CMD, (0x002c & 0x00FF));                                                       
SET_LCD_ROI_CTRL_NUMBER_OF_CMD(10);
目前的现象还是花屏?
问题1:
LCD_BlockWrite()函数是的要这样写吗?这样传入的坐标值是不是对的?

问题2:
屏厂提供的初始化代码不是一个寄存器的地址对应一个值,如:
       SPFD54126_SEND_COMMAND(0xE0);
       SPFD54126_SEND_PARAMETER(0x00);         
       SPFD54126_SEND_PARAMETER(0x01);                 
       SPFD54126_SEND_PARAMETER(0x06);                 
       SPFD54126_SEND_PARAMETER(0x2F);
       SPFD54126_SEND_PARAMETER(0x2B);                 
       SPFD54126_SEND_PARAMETER(0x0B);                 
       SPFD54126_SEND_PARAMETER(0x1F);                 
       SPFD54126_SEND_PARAMETER(0x01);         
       SPFD54126_SEND_PARAMETER(0x06);                 
       SPFD54126_SEND_PARAMETER(0x06);                 
       SPFD54126_SEND_PARAMETER(0x0F);
       SPFD54126_SEND_PARAMETER(0x0F);                 
       SPFD54126_SEND_PARAMETER(0x00);                 
       SPFD54126_SEND_PARAMETER(0x04);                 
       SPFD54126_SEND_PARAMETER(0x03);                 
       SPFD54126_SEND_PARAMETER(0x05);
我直接把SPFD54126_SEND_COMMAND(); 替换为LCD_CtrlWrite_HX8306A(reg_index);
SPFD54126_SEND_PARAMETER(); 替换为LCD_DataWrite_HX8306A(reg_data);
是这样的吗?请指教!
点评回复

使用道具 举报

发表于 2008-1-26 16:35:41 | 显示全部楼层
SPFD54126的屏如果BUS是8位的时候也是不需要传2次CMD的,因为它的指令系统是8位的;如果BUS是16位的时候也是传一次CMD,低8位有效.
SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x002A & 0x00FF));//这样写个CMD应该就OK了.
后面是跟着几个DATA.
SET_LCD_CMD_PARAMETER(1,LCD_DATA, (startx>>8));
SET_LCD_CMD_PARAMETER(2,LCD_DATA, (startx&0xff));
SET_LCD_CMD_PARAMETER(3,LCD_DATA, (endx>>8));
SET_LCD_CMD_PARAMETER(4,LCD_DATA, (endx&0xff));
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-15 20:51 , Processed in 0.053262 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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