OpenEdv-开源电子网

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

横屏显示和竖屏显示的代码有什么不同?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2011-8-6
在线时间
0 小时
发表于 2011-8-8 14:50:36 | 显示全部楼层 |阅读模式
     原子大哥,请问你的TFT显示例程和横屏显示例程有什么不一样的地方?是LCD的初始化吗?可是我找不出有什么不一样!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2011-7-26
在线时间
0 小时
发表于 2011-8-8 15:03:43 | 显示全部楼层
没看,地址更新方向改,好吧。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-8-8 15:08:27 | 显示全部楼层
横竖屏,无非就是X坐标和Y坐标的兑换.
比如竖屏时, 某点的坐标为 (x,y),切换为横屏,该点的坐标(不是唯一的,视原点的定义不同而不同)就是 (320-y,x).
那么你只要把所有原来的x,y,换为320-y,x,就是横竖屏切换了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2012-3-28
在线时间
0 小时
发表于 2012-10-13 11:28:30 | 显示全部楼层
原子哥,我还是不明白两个历程的区别在哪呢,好像代码都是一样的,麻烦指点一下,不尽感激啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-13 17:44:43 | 显示全部楼层
在lcd.h里面有个宏定义,你看一下。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2013-11-7
在线时间
0 小时
发表于 2013-11-7 10:59:35 | 显示全部楼层
这个没有给出最终答案,补一下。就是差LCD.H文件中横屏是否激活。#define USE_HORIZONTAL  0 //定义是否使用横屏  0,不使用.1,使用.
仅仅是这个区别
回复 支持 反对

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-8-10 23:00:25 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子大哥,那那个校正参数该怎么改呢,改了好几次都没改对,我把每次触摸的坐标显示在屏幕上,根本不对,那就是应该修改参数不对。
Pen_Point.xfac=(float)200/(pos_temp[1][0]-pos_temp[0][0]);//得到xfac  
Pen_Point.xoff=(240-Pen_Point.xfac*(pos_temp[1][0]+pos_temp[0][0]))/2;//得到xoff
  
Pen_Point.yfac=(float)280/(pos_temp[2][1]-pos_temp[0][1]);//得到yfac
Pen_Point.yoff=(320-Pen_Point.yfac*(pos_temp[2][1]+pos_temp[0][1]))/2;//得到yoff  
POINT_COLOR=BLUE;
LCD_Clear(WHITE);//清屏
LCD_ShowString(35,110,194,16,16,"Touch Screen Adjust OK!");//校正完成
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-10 23:10:26 | 显示全部楼层
回复【7楼】whut-showming:
---------------------------------
这个要根据校准的坐标点计算出来才行的啊.
你直接用我们的TOUCH_Adjust函数就可以了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-8-11 07:50:51 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
我是用的TOUCH_Adjust函数,但是现在是横屏了,那么这下面的公式里面的系数要改了,就是下面的200,240,280,320这些。因为变成横屏后,坐标原点都变了,Xmax是320,Ymax是240,所以这个校正计算Pen_Point.xfac,Pen_Point.xoff,Pen_Point.yfac,Pen_Point.yoff这四个参数时,公式里计算的系数要改吧,但是我不知道怎么改,也不知道下面这公式中的系数是怎么来的,尝试着把240和320,200和280换个位置都不行,该怎么办?
Pen_Point.xfac=(float)200/(pos_temp[1][0]-pos_temp[0][0]);//得到xfac    
Pen_Point.xoff=(240-Pen_Point.xfac*(pos_temp[1][0]+pos_temp[0][0]))/2;//得到xoff 
   
Pen_Point.yfac=(float)280/(pos_temp[2][1]-pos_temp[0][1]);//得到yfac 
Pen_Point.yoff=(320-Pen_Point.yfac*(pos_temp[2][1]+pos_temp[0][1]))/2;//得到yoff
回复 支持 反对

使用道具 举报

8

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2014-5-15
在线时间
8 小时
发表于 2014-8-11 09:38:52 | 显示全部楼层
回复【9楼】whut-showming:
---------------------------------
原子大哥,我懂了,问题解决了。Pen_Point.xfac,Pen_Point.xoff,Pen_Point.yfac,Pen_Point.yoff这四个参数是根据
LCDx=xfac*Px+xoff; 
LCDy=yfac*Py+yoff;
这两个公式算出来的。按照这个公式修改系数之后,我又在头文件中把,CMD_RDX和CMD_RDY修改了一下,就是对调了一下,因为在我的横屏新的坐标系中,我的X,Y是对调了的,所以我把最初的读取命令换了一下,最后能成功校准了,得到准确的校准参数了。
谢谢原子大哥热心的解答!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 02:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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