OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5297|回复: 4

TFT LCD显示实验中的疑问

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2015-12-18
在线时间
0 小时
发表于 2015-12-18 20:17:47 | 显示全部楼层 |阅读模式
5金钱
在TFT LCD显示实验设置光标位置的函数,LCD_SetCursor(u16 Xpos, u16 Ypos)中LCD_WR_REG(lcddev.setxcmd+1); 为什么要加这个语句。没看懂。

最佳答案

查看完整内容[请看2#楼]

回复【4楼】xy125730: --------------------------------- 很明显这个驱动芯片的一个X,Y坐标各有两个指令分别放数据高8位和低8位,第一个指令放高8位数据,指令+1后放低8位数据,具体学会数据手册
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-12-18 20:17:48 | 显示全部楼层
回复【4楼】xy125730:
---------------------------------
很明显这个驱动芯片的一个X,Y坐标各有两个指令分别放数据高8位和低8位,第一个指令放高8位数据,指令+1后放低8位数据,具体学会数据手册
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-12-18 20:50:15 | 显示全部楼层
你贴整个函数上来吧
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-12-18 20:53:40 | 显示全部楼层
刚看了下代码
//设置光标位置 
void LCD_SetCursor(u16 x, u16 y)
{
if(lcddev.id == 0x9341)
{
LCD_WR_REG(0x2A); //写入X坐标
LCD_WR_DATAX(x>>8);
LCD_WR_DATAX(x&0xFF);
LCD_WR_REG(0x2B); //写入Y坐标
LCD_WR_DATAX(y>>8);
LCD_WR_DATAX(y&0xFF);
}
}

这里的是指写入指令0x2A代表要写入X的坐标了,坐标为后面的16字节
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2015-12-18
在线时间
0 小时
 楼主| 发表于 2015-12-18 21:25:41 | 显示全部楼层
回复【2楼】229382777@qq.com:
---------------------------------
void LCD_SetCursor(u16 Xpos, u16 Ypos)
{
if(lcddev.id==0X9341||lcddev.id==0X5310)

STM32 F4  开发指南( ( 库函数 版) )
ALIENTEK  探索者 STM32F407  开发板教程
272
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(Xpos>>8);
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(Ypos>>8);
LCD_WR_DATA(Ypos&0XFF);
}else if(lcddev.id==0X6804)
{
if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏时处理
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(Xpos>>8);
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(Ypos>>8);
LCD_WR_DATA(Ypos&0XFF);
}else if(lcddev.id==0X5510)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(Xpos>>8);
LCD_WR_REG(lcddev.setxcmd+1);
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(Ypos>>8);
LCD_WR_REG(lcddev.setycmd+1);
LCD_WR_DATA(Ypos&0XFF);
}else
{
if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏其实就是调转 x,y 坐标
LCD_WriteReg(lcddev.setxcmd, Xpos);
LCD_WriteReg(lcddev.setycmd, Ypos);

}
为什么5510需要些LCD_WR_REG(lcddev.setxcmd+1);
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 20:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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