OpenEdv-开源电子网

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

TFT实验,请问要修改屏幕的显示方向是不是只要修改R3就可以啊

[复制链接]

13

主题

105

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
16874
金钱
16874
注册时间
2012-10-20
在线时间
48 小时
发表于 2012-10-31 10:54:24 | 显示全部楼层 |阅读模式
我在做TFT显示实验,看到R3这个寄存器的功能,我就试验一下可是不管我怎么修改它的值,结果显示还是不变
我读出来的ID是9325


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-31 11:01:17 | 显示全部楼层
回复【楼主位】乐学:
---------------------------------
参考下战舰板的代码:
//设置LCD的自动扫描方向
//注意:其他函数可能会受到此函数设置的影响(尤其是9341/6804这两个奇葩),
//所以,一般设置为L2R_U2D即可,如果设置为其他扫描方式,可能导致显示不正常.
//dir:0~7,代表8个方向(具体定义见lcd.h)
//9320/9325/9328/4531/4535/1505/b505/8989/5408/9341等IC已经实际测试        
void LCD_Scan_Dir(u8 dir)
{
u16 regval=0;
u8 dirreg=0;
u16 temp;  
if(lcddev.dir==1&&lcddev.id!=0X6804)//横屏时,对6804不改变扫描方向!
{    
switch(dir)//方向转换
{
case 0:dir=6;break;
case 1:dir=7;break;
case 2:dir=4;break;
case 3:dir=5;break;
case 4:dir=1;break;
case 5:dir=0;break;
case 6:dir=3;break;
case 7:dir=2;break;      
}
}
if(lcddev.id==0x9341||lcddev.id==0X6804)//9341/6804,很特殊
{
switch(dir)
{
case L2R_U2D://从左到右,从上到下
regval|=(0<<7)|(0<<6)|(0<<5); 
break;
case L2R_D2U://从左到右,从下到上
regval|=(1<<7)|(0<<6)|(0<<5); 
break;
case R2L_U2D://从右到左,从上到下
regval|=(0<<7)|(1<<6)|(0<<5); 
break;
case R2L_D2U://从右到左,从下到上
regval|=(1<<7)|(1<<6)|(0<<5); 
break;  
case U2D_L2R://从上到下,从左到右
regval|=(0<<7)|(0<<6)|(1<<5); 
break;
case U2D_R2L://从上到下,从右到左
regval|=(0<<7)|(1<<6)|(1<<5); 
break;
case D2U_L2R://从下到上,从左到右
regval|=(1<<7)|(0<<6)|(1<<5); 
break;
case D2U_R2L://从下到上,从右到左
regval|=(1<<7)|(1<<6)|(1<<5); 
break;  
}
dirreg=0X36;
  regval|=0X08;//BGR   
if(lcddev.id==0X6804)regval|=0x02;//6804的BIT6和9341的反了    
LCD_WriteReg(dirreg,regval);
  if(regval&0X20)
{
if(lcddev.width<lcddev.height)//交换X,Y
{
temp=lcddev.width;
lcddev.width=lcddev.height;
lcddev.height=temp;
  }
}else  
{
if(lcddev.width>lcddev.height)//交换X,Y
{
temp=lcddev.width;
lcddev.width=lcddev.height;
lcddev.height=temp;
  }
}  
LCD_WR_REG(lcddev.setxcmd); 
LCD_WR_DATA(0);LCD_WR_DATA(0);
LCD_WR_DATA((lcddev.width-1)>>8);LCD_WR_DATA((lcddev.width-1)&0XFF);
LCD_WR_REG(lcddev.setycmd); 
LCD_WR_DATA(0);LCD_WR_DATA(0);
LCD_WR_DATA((lcddev.height-1)>>8);LCD_WR_DATA((lcddev.height-1)&0XFF);  
   }else 
{
switch(dir)
{
case L2R_U2D://从左到右,从上到下
regval|=(1<<5)|(1<<4)|(0<<3); 
break;
case L2R_D2U://从左到右,从下到上
regval|=(0<<5)|(1<<4)|(0<<3); 
break;
case R2L_U2D://从右到左,从上到下
regval|=(1<<5)|(0<<4)|(0<<3);
break;
case R2L_D2U://从右到左,从下到上
regval|=(0<<5)|(0<<4)|(0<<3); 
break;  
case U2D_L2R://从上到下,从左到右
regval|=(1<<5)|(1<<4)|(1<<3); 
break;
case U2D_R2L://从上到下,从右到左
regval|=(1<<5)|(0<<4)|(1<<3); 
break;
case D2U_L2R://从下到上,从左到右
regval|=(0<<5)|(1<<4)|(1<<3); 
break;
case D2U_R2L://从下到上,从右到左
regval|=(0<<5)|(0<<4)|(1<<3); 
break;  
}
if(lcddev.id==0x8989)//8989 IC
{
dirreg=0X11;
regval|=0X6040; //65K   
  }else//其他驱动IC   
{
dirreg=0X03;
regval|=1<<12;  
}
LCD_WriteReg(dirreg,regval);
}


注意,我这里是改变扫描方向,对于类似想横屏显示或者什么显示的童鞋,建议结合我们的USMART,自己看看这个设置改变后,LCD的自增方向是什么样的,有个感性的认识,后续做起来就清楚了。

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
发表于 2012-10-31 11:28:29 | 显示全部楼层
回复【楼主位】乐学:
---------------------------------
横屏竖屏注意两个地方就好
1.液晶好像默认是竖屏,要横屏就把坐标改成(Y,319-X)
2.把这个03寄存器设置好,就是和你扫描的方向方式对应就好了。
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
784
金钱
784
注册时间
2010-12-19
在线时间
5 小时
发表于 2012-10-31 13:59:41 | 显示全部楼层
只通过R3想切换横竖屏,要看你使用的液晶了。

当初我也想切换横竖屏,通过改R3死活不成功。(我买的不是原子开发板)

我是通过: 1修改R3  2:修改坐标起点

一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-7-25 08:09:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,请问怎样改变图片的显示方向呢?
回复 支持 反对

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-7-25 17:13:29 | 显示全部楼层
回复【5楼】whut-showming:
---------------------------------
还有原子哥,请问一下图片可以叠加显示吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-25 23:30:03 | 显示全部楼层
回复【6楼】whut-showming:
---------------------------------
那得带alpha通道的图片,比如png,才可以.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 20:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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