MTK LCD 驱动

zhoulianghao166 2009-03-13 06:04:03
有哪位大虾能告诉我下面这段驱动初始化程序代码有哪位大虾能告诉我下面这段驱动初始化程序代码都做实现了什么,
怎样区分语句是命令还是参数设置???

void LCD_Init_S6B33BF(kal_uint32 bkground, void **buf_addr)
{
volatile kal_uint32 i;
kal_uint16 background = (kal_uint16)bkground;
kal_uint16 read_data;

CLEAR_LCD_CTRL_RESET_PIN; //REG_LCD_CTRL = 0
Delayms(50);
SET_LCD_CTRL_RESET_PIN; //REG_LCD_CTRL = 1
Delayms(50);
LCD_MainLCD_CtrlWrite(0x2c);
Delayms(20);
LCD_MainLCD_CtrlWrite(0xEB);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x02);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);

LCD_MainLCD_CtrlWrite(0x20);
LCD_MainLCD_CtrlWrite(0x0a);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x09);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x0b);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x0f);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x28);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x45);
LCD_MainLCD_CtrlWrite(0x00);
LCD_MainLCD_CtrlWrite(0x53);
LCD_MainLCD_CtrlWrite(0x00);
................
................
LCD_MainLCD_CtrlWrite(0x9F);
LCD_MainLCD_CtrlWrite(0x43);
LCD_MainLCD_CtrlWrite(0x04);
LCD_MainLCD_CtrlWrite(0x83);
LCD_MainLCD_CtrlWrite(0x55);
LCD_MainLCD_CtrlWrite(0x01);
LCD_MainLCD_CtrlWrite(0x5A);
LCD_MainLCD_CtrlWrite(0x00);
LCD_MainLCD_CtrlWrite(0x51);

LCD_ClearAll_S6B33BF(0xffff);
}

我是搞MTK软件的,但因需要得调驱动,
搞不懂上面的括号里面的是命令还是参数
感觉怎么都是命令 但参数不知道参数是这么设置的
有哪位高手指点一下

感觉不尽

void LCD_Init_S6B33BF(kal_uint32 bkground, void **buf_addr)
{
volatile kal_uint32 i;
kal_uint16 background = (kal_uint16)bkground;
kal_uint16 read_data;

CLEAR_LCD_CTRL_RESET_PIN; //REG_LCD_CTRL = 0
Delayms(50);
SET_LCD_CTRL_RESET_PIN; //REG_LCD_CTRL = 1
Delayms(50);
LCD_MainLCD_CtrlWrite(0x2c);
Delayms(20);
LCD_MainLCD_CtrlWrite(0xEB);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x02);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);

LCD_MainLCD_CtrlWrite(0x20);
LCD_MainLCD_CtrlWrite(0x0a);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x09);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x0b);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x26);
LCD_MainLCD_CtrlWrite(0x0f);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x28);
LCD_MainLCD_CtrlWrite(0x01);
Delayms(20);
LCD_MainLCD_CtrlWrite(0x45);
LCD_MainLCD_CtrlWrite(0x00);
LCD_MainLCD_CtrlWrite(0x53);
LCD_MainLCD_CtrlWrite(0x00);
................
................
LCD_MainLCD_CtrlWrite(0x9F);
LCD_MainLCD_CtrlWrite(0x43);
LCD_MainLCD_CtrlWrite(0x04);
LCD_MainLCD_CtrlWrite(0x83);
LCD_MainLCD_CtrlWrite(0x55);
LCD_MainLCD_CtrlWrite(0x01);
LCD_MainLCD_CtrlWrite(0x5A);
LCD_MainLCD_CtrlWrite(0x00);
LCD_MainLCD_CtrlWrite(0x51);

LCD_ClearAll_S6B33BF(0xffff);
}

我是搞MTK软件的,但因需要得调驱动,
搞不懂上面的括号里面的是命令还是参数
感觉怎么都是命令 但参数不知道参数是这么设置的
有哪位高手指点一下

感觉不尽
...全文
977 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiwu1984 2009-12-29
  • 打赏
  • 举报
回复
应该是一个什么代码
sunvin 2009-12-28
  • 打赏
  • 举报
回复
LCD_MainLCD_CtrlWrite(0x2c);

命令和参数其实是一回事,如此行语句,就是主控端(基带)往外设(LCD)发送外(LCD)设要求的参数;对基带来说是在发送命令,对LCD来说,是获得合适的参数.
xfy1970 2009-10-24
  • 打赏
  • 举报
回复
是命令,不同的参数代表不同命令
RICHYOU 2009-08-22
  • 打赏
  • 举报
回复
这个是LCD厂家自己调试的代码吧
rechardliu2008 2009-06-24
  • 打赏
  • 举报
回复
应该是关于寄存器参数设置的
littlesweb 2009-06-16
  • 打赏
  • 举报
回复
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
JavaAndJava 2009-06-09
  • 打赏
  • 举报
回复
发个广告

1:招聘MTK游戏程序员。熟悉C语言,熟悉ARM编译。
2:有良好的团队意识,能够自主开发MTK平台游戏。
3:熟悉JAVA语言,有J2ME游戏开发经验优先。
4:有思凯平台开发经验优先。
5:有手机游戏开发经验优先。
6:做过BREW优先。

公司:北京华娱无线
招聘信箱:zhaopin@imy.cn
skyge 2009-06-08
  • 打赏
  • 举报
回复
LCD_MainLCD_CtrlWrite函数是向对应的lcd的io接口写值
来进行驱动程序的初始化,lz可以参考LCD手册
下面是个c语言版S6B33BF的驱动,里面有英文注释,参考一下

/*------standby_off -------------- */
WriteData(WRCOMM,0x2C);
Delay(20);

/*------set OTP mode off---------*/
WriteData(WRCOMM,0xEA);
Delay(10);

/*------set internal osc on---------*/
WriteData(WRCOMM,0x02);
WriteData(WRCOMM,0x01);
Delay(10);

/*------booster1 on---------------*/
WriteData(WRCOMM,0x20);
WriteData(WRCOMM,0x0A);
Delay(10);

/*------booster1 on---------------*/
WriteData(WRCOMM,0x26);
WriteData(WRCOMM,0x01);
Delay(10);

/*------booster1 on and amp on---------*/
WriteData(WRCOMM,0x26);
WriteData(WRCOMM,0x09);
Delay(10);

/*------booster2 on-------------*/
WriteData(WRCOMM,0x26);
WriteData(WRCOMM,0x0b);
Delay(10);

/*------booster3 on-------------*/
WriteData(WRCOMM,0x26);
WriteData(WRCOMM,0x0f);
Delay(10);

/*------temp compsation ratio -0.05%------*/
WriteData(WRCOMM,0x28);
WriteData(WRCOMM,0x01);

/*------ram skip area set no skip------*/
WriteData(WRCOMM,0x45);
WriteData(WRCOMM,0x00);

/*------normal display---------*/
WriteData(WRCOMM,0x53);
WriteData(WRCOMM,0x00);

/*------set sdir=0,duty=1/162 swap=0-----*/
WriteData(WRCOMM,0x10);
WriteData(WRCOMM,0x21); //RGB//0x23

/*------set clock fpck=fose/32(Normal)/fpck=fose/16(partial1)-------*/
WriteData(WRCOMM,0x24);
WriteData(WRCOMM,0x11);

/*------GSM=00:65K color,DSG=0,SGF=0,SGP=01,SGM=0-----*/
WriteData(WRCOMM,0x30);
WriteData(WRCOMM,0x02);//09

/*------row vector type=Diagonal ,INC=111-----*/
WriteData(WRCOMM,0x32);
WriteData(WRCOMM,0x0E);//0e

/*------entry mode set : x addr increce, read modify write off--*/
WriteData(WRCOMM,0x40);
WriteData(WRCOMM,0x00);

/*------y address set from 00 to 127--------*/
WriteData(WRCOMM,0x43);
WriteData(WRCOMM,0x00);
WriteData(WRCOMM,0x7F);

/*------x address set from 00 to 159--------*/
WriteData(WRCOMM,0x42);
WriteData(WRCOMM,0x00);
WriteData(WRCOMM,0x9F);

/*------frame set FIM=ON,FIP=1FRAME,N-BLOCK=9-----*/
WriteData(WRCOMM,0x34);
WriteData(WRCOMM,0x89);//cd

/*------contrast1 set v1 to 3.757v max=4v----0x2A,CTRL1*/
WriteData(WRCOMM,0x2a);
WriteData(WRCOMM,0xBB); /*partial display mode 0*/

/*------contrast2 set v1 to 3.757v max=4v--------*/
WriteData(WRCOMM,0x2b);
WriteData(WRCOMM,0x20); /*partial display mode 1*/
Delay(10);

/*------bias set to 1/5 --------*/
WriteData(WRCOMM,0x22);
WriteData(WRCOMM,0x11);

/*------partial display mode off-------*/
WriteData(WRCOMM,0x55);
WriteData(WRCOMM,0x00);

/*------Low frequency set off-------*/
WriteData(WRCOMM,0x36);
WriteData(WRCOMM,0x00);

/*-------Scrol lstart line Set-------*/
WriteData(WRCOMM,0x5A);
WriteData(WRCOMM,0x00);


/*------display on set--------*/
Delay(20);
WriteData(WRCOMM,0x51);
huabinsir 2009-05-30
  • 打赏
  • 举报
回复
要查LCD 规格书。

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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