LPC2214采用总线模式读TFT屏,寄存器地址遇到困难

[复制链接]
3485|9
 楼主| 我是土匪 发表于 2009-3-25 16:58 | 显示全部楼层 |阅读模式
为什么要读屏:<br />手持设备,CPU进入掉电模式后只要连接TFT的电源(已经关闭背光和驱动电路),就会产生接近200ma电流,所以采用这样的措施:<br />硬件用IO口控制三极管&nbsp;,可以切断TFT电源;<br />软件CPU先休眠一段时间,没有触发采用定时器唤醒,然后读全屏数据保存到片外SRAM,切断TFT电源,CPU进入掉电模式,当CPU被按键唤醒后,先对屏供电,背光关闭,打开TFT驱动电路,对TFT初始化,恢复掉电前显示界面,打开背光。<br /><br />目前遇到困难:读屏数据不正确。
 楼主| 我是土匪 发表于 2009-3-25 17:16 | 显示全部楼层

硬件平台2套

一套采用ZLG的SMARTARM2200和TFT4267模块<br />一套自己制板&nbsp;LPC2214&nbsp;+&nbsp;4.4<br />均采用总线方式驱动。<br /><br />其中写屏操作2者几乎相同,现把相关代码发到下面<br />1、SMARTARM2200平台下读一段屏屏显示代码:<br /><br /><br />//&nbsp;TFT液晶模块硬件操作宏<br />#define&nbsp;&nbsp;S6D0129_IR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;short&nbsp;*)&nbsp;0x83200000))&nbsp;<br />#define&nbsp;&nbsp;S6D0129_DR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;short&nbsp;*)&nbsp;0x83200002))<br />//&nbsp;定义S6D0129的部份寄存器<br />#define&nbsp;&nbsp;SET_ADDR_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;GRAM地址设置(R21H,R20H)&nbsp;*/<br />#define&nbsp;&nbsp;SET_ADDR_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0021<br />#define&nbsp;&nbsp;WR_RD_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;写/读GRAM数据&nbsp;(R22H)&nbsp;*/<br />void&nbsp;&nbsp;DisDemo(void)<br />{&nbsp;&nbsp;uint32&nbsp;&nbsp;x,&nbsp;y;<br />&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;no&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;dat;<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;第1幅图&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TftSetWindow(0,0,&nbsp;239,&nbsp;319);&nbsp;//设置数据填充窗口大小<br />&nbsp;&nbsp;&nbsp;TftSetWrite(0,0);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;no&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;for(y=0;&nbsp;y&lt320;&nbsp;y++)<br />&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;for(x=0;&nbsp;x&lt240;&nbsp;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendDat(data[no&nbsp;++]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />/*******************************************************<br />*&nbsp;名称:&nbsp;TftSetWrite<br />*&nbsp;功能:&nbsp;设置数据地址指针(坐标值),并发送写数据命令。<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接着不断的写入数据即可,GRAM地址会自动增加。<br />*&nbsp;入口参数:&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;横坐标的值&nbsp;(0-239)<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;纵坐标的值&nbsp;(0-319)<br />*&nbsp;出口参数:&nbsp;设置正确返回TRUE,参数超出范围返回FALSE<br />*******************************************************/<br />uint8&nbsp;&nbsp;TftSetWrite(uint16&nbsp;x,&nbsp;uint16&nbsp;y)<br />{&nbsp;&nbsp;uint8&nbsp;&nbsp;ret;<br /><br />&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;TftSetAddr(x,&nbsp;y);<br />&nbsp;&nbsp;&nbsp;TftSendCom(WR_RD_DATA);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写数据<br />&nbsp;&nbsp;&nbsp;return(ret);<br />}<br />/*******************************************************<br />*&nbsp;名称:&nbsp;TftSetAddr<br />*&nbsp;功能:&nbsp;设置数据地址指针(坐标值)。<br />*&nbsp;入口参数:&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;横坐标的值&nbsp;(0-239)<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;纵坐标的值&nbsp;(0-319)<br />*&nbsp;出口参数:&nbsp;设置正确返回TRUE,参数超出范围返回FALSE<br />*******************************************************/<br />uint8&nbsp;&nbsp;TftSetAddr(uint16&nbsp;x,&nbsp;uint16&nbsp;y)<br />{&nbsp;&nbsp;TftSendCom(SET_ADDR_X);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址低8位<br />&nbsp;&nbsp;&nbsp;TftSendDat(x);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;TftSendCom(SET_ADDR_Y);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址高9位<br />&nbsp;&nbsp;&nbsp;TftSendDat(y);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;if((x&lt240)&nbsp;&&&nbsp;(y&lt320))&nbsp;return(TRUE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;return(FALSE);<br />}<br />/*******************************************************<br />*&nbsp;名称:&nbsp;TftSendCom<br />*&nbsp;功能:&nbsp;向TFT液晶模块发送命令字。<br />*&nbsp;入口参数:&nbsp;com&nbsp;&nbsp;&nbsp;命令字(uint16)<br />*&nbsp;出口参数:&nbsp;无<br />*******************************************************/<br />void&nbsp;&nbsp;TftSendCom(uint16&nbsp;com)<br />{&nbsp;&nbsp;S6D0129_IR&nbsp;=&nbsp;com;<br />}<br />
 楼主| 我是土匪 发表于 2009-3-25 17:19 | 显示全部楼层

读屏

/*******************************************************<br />*&nbsp;名称:&nbsp;TftSendDat<br />*&nbsp;功能:&nbsp;向TFT液晶模块发送数据。<br />*&nbsp;入口参数:&nbsp;dat&nbsp;&nbsp;&nbsp;待发送的数据(uint16)<br />*&nbsp;出口参数:&nbsp;无<br />*******************************************************/<br />void&nbsp;&nbsp;TftSendDat(uint16&nbsp;dat)<br />{&nbsp;&nbsp;S6D0129_DR&nbsp;=&nbsp;dat;<br />}<br /><br /><br />/*******************************************************<br />*&nbsp;名称:&nbsp;TftRcvDat<br />*&nbsp;功能:&nbsp;读取TFT液晶模块的数据。<br />*&nbsp;入口参数:&nbsp;无<br />*&nbsp;出口参数:&nbsp;返回值即是读出的数据<br />*******************************************************/<br />uint16&nbsp;&nbsp;TftRcvDat(void)<br />{&nbsp;&nbsp;uint16&nbsp;&nbsp;ret;<br /><br />&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;S6D0129_DR;<br />&nbsp;&nbsp;&nbsp;return(ret);<br />}<br />uint16&nbsp;data[320&nbsp;*&nbsp;240]&nbsp;=&nbsp;{0};<br />void&nbsp;Read_Lcd(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;x,y;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;no&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(y&nbsp;=&nbsp;0&nbsp;;y&nbsp;&lt&nbsp;320;y++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(x&nbsp;=&nbsp;0&nbsp;;x&nbsp;&lt&nbsp;240;&nbsp;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GUI_ReadPoint(x,y,&nbsp;&&nbsp;data[no++]);<br />}<br /><br />/****************************************************************************<br />*&nbsp;名称:GUI_ReadPoint()<br />*&nbsp;功能:读取指定位置点的颜色数据。<br />*&nbsp;入口参数:x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定点所在列的位置<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定点所在行的位置<br />*&nbsp;出口参数:返回值即是读出值(RRRRRGGGGGGBBBBB)。<br />****************************************************************************/<br />uint8&nbsp;&nbsp;GUI_ReadPoint(uint16&nbsp;x,&nbsp;uint16&nbsp;y,&nbsp;TCOLOR&nbsp;*ret)<br />{&nbsp;&nbsp;uint16&nbsp;&nbsp;bak;<br /><br />&nbsp;&nbsp;&nbsp;/*&nbsp;参数过滤&nbsp;*/<br />&nbsp;&nbsp;&nbsp;if(x&gt=GUI_LCM_XMAX)&nbsp;return(0);<br />&nbsp;&nbsp;&nbsp;if(y&gt=GUI_LCM_YMAX)&nbsp;return(0);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;/*&nbsp;读取数据&nbsp;*/<br />&nbsp;&nbsp;&nbsp;TftSetAddr(x,&nbsp;y);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址<br />&nbsp;&nbsp;&nbsp;TftSendCom(WR_RD_DATA);<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;TftRcvDat();<br />&nbsp;&nbsp;&nbsp;bak&nbsp;=&nbsp;TftRcvDat();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;*ret&nbsp;=&nbsp;bak;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;return(1);<br />}
 楼主| 我是土匪 发表于 2009-3-25 17:31 | 显示全部楼层

第二套平台

<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET_ADDR_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读高位地址<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET_ADDR_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读低位地址<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WR_RD_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;写/读GRAM数据&nbsp;(R22H)&nbsp;*/<br />/****************************************************************************<br />*&nbsp;名称:void&nbsp;Read_Full_Lcd(void)<br />*&nbsp;功能:用于关闭TFT电源前的保存操作<br />****************************************************************************/<br />void&nbsp;Read_Full_Lcd(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;x,y;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;no&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;AMP506_WindowSet(0,0,&nbsp;480,&nbsp;271);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(y&nbsp;=&nbsp;0;y&nbsp;&lt&nbsp;GUI_LCM_YMAX;&nbsp;y&nbsp;++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(x&nbsp;=&nbsp;0;x&nbsp;&lt&nbsp;GUI_LCM_XMAX;x&nbsp;++)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GUI_ReadPoint(x,y,&nbsp;&&nbsp;data[no++]);&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />/****************************************************************************<br />*&nbsp;名称:void&nbsp;Reappear_Lcd(void)<br />*&nbsp;功能:用于掉电唤醒后TFT的恢复操作<br />****************************************************************************/<br />void&nbsp;Reappear_Lcd(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;x,y;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;no;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;no=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;AMP506_WindowSet(0,0,&nbsp;GUI_LCM_XMAX,GUI_LCM_YMAX);&nbsp;&nbsp;&nbsp;&nbsp;//AMP506_WindowSet(0,0,&nbsp;480,&nbsp;271);<br />&nbsp;&nbsp;&nbsp;&nbsp;FD506_DisplayRAM_WriteEnable;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(y&nbsp;=&nbsp;0;y&nbsp;&lt&nbsp;GUI_LCM_YMAX;&nbsp;y&nbsp;++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(x&nbsp;=&nbsp;0;x&nbsp;&lt&nbsp;GUI_LCM_XMAX;x&nbsp;++)&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat&nbsp;=&nbsp;data[no&nbsp;++];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//图片作为程序一部分存储<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendDat(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;FD506_DisplayRAM_WriteDisable;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;<br /><br /><br />这段代码读出来的始终为常量,经过分析始终感觉一直在读一个地址。换句话第二个代码问题极有可能出现在开都的宏(TFT寄存器)的使用
 楼主| 我是土匪 发表于 2009-3-25 17:37 | 显示全部楼层

贴datasheet

TFT4267涉及到的寄存器:<br />
 楼主| 我是土匪 发表于 2009-3-25 17:40 | 显示全部楼层

4.3TFT寄存器

 楼主| 我是土匪 发表于 2009-3-25 17:48 | 显示全部楼层

实际工作量很小

相当于我把//&nbsp;定义S6D0129的部份寄存器<br />#define&nbsp;&nbsp;SET_ADDR_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;GRAM地址设置(R21H,R20H)&nbsp;*/<br />#define&nbsp;&nbsp;SET_ADDR_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0021<br />#define&nbsp;&nbsp;WR_RD_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;写/读GRAM数据&nbsp;(R22H)&nbsp;*/<br /><br />换成了<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET_ADDR_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读高位地址<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET_ADDR_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读低位地址<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WR_RD_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;写/读GRAM数据&nbsp;(R22H)&nbsp;*/&nbsp;<br />
 楼主| 我是土匪 发表于 2009-3-25 18:48 | 显示全部楼层

晕菜

截图上传后很容易发现问题:<br /><br />地址寄存器宽度明显不同,因为TFT大小不同;<br />我读的数据一直都是某个地址数值,所以出现上述结果。<br /><br />原因找到,继续,争取早点解决问题<br />
 楼主| 我是土匪 发表于 2009-3-26 16:18 | 显示全部楼层

设置地址

uint8&nbsp;&nbsp;TftSetAddr_1(uint16&nbsp;x,&nbsp;uint16&nbsp;y)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TftSendCom(SET_ADDR_3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址低8位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendDat(x);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendCom(SET_ADDR_2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址中8(1(X高位)&nbsp;+&nbsp;7(y低7位)位)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendDat((y&nbsp;&lt&lt&nbsp;1)&nbsp;|&nbsp;(x&nbsp;&gt&gt&nbsp;7));<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TftSendCom(SET_ADDR_1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址高2(X高位)&nbsp;+&nbsp;7(y低7位)位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TftSendDat(&nbsp;y&nbsp;&gt&gt&nbsp;6&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((x&ltGUI_LCM_XMAX)&nbsp;&&&nbsp;(y&ltGUI_LCM_YMAX))&nbsp;return(TRUE);<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;return(FALSE);<br />}
 楼主| 我是土匪 发表于 2009-3-30 14:48 | 显示全部楼层

结贴

最后用尽所有办法仍旧没有读取屏的内容,商家提供代码也是中看不中用。<br />周末休息2天,发现自己钻死胡同了,今早另辟新径,已经解决:<br />写屏同时将数据写到片外SRAM中,在SRAM开辟2维数组,对应TFT的行列点数,这样就OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

226

主题

1761

帖子

30

粉丝
快速回复 在线客服 返回列表 返回顶部