OpenEdv-开源电子网

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

分享一下在uCGUI中切换横竖屏显示的经验

[复制链接]

17

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-8-23
在线时间
0 小时
发表于 2013-6-3 14:38:05 | 显示全部楼层 |阅读模式
首先说一下我的环境:用的是战舰板,移植好uC/OS-II和uC/GUI,触摸什么的都正常。
接下来就正式开始修改:
1.修改LCD的默认显示方向
    mylcd.c中存放了LCD的驱动,里面有个LCD_MyInit(),用来初始化LCD,函数的最后有个LCD_Display_Dir()函数,用来切换LCD的显示方向,根据需要选择:0为竖屏,1为横屏。
    LCD_Display_Dir(1); //横屏显示,默认为竖屏

2.修改uC/GUI中对应于触摸的坐标检测函数
    在GUI_X_Touch.c中,有两个检测触摸的函数,GUI_TOUCH_X_MeasureX()与GUI_TOUCH_X_MeasureY(),竖屏显示的话MeasureX就返回X坐标,MeasureY就返回Y坐标,横屏显示的话反过来就可以了。
int  GUI_TOUCH_X_MeasureX(void) {
tp_dev.scan(0);

return tp_dev.y;  //横屏显示
// return tp_dev.x;  //竖屏显示
}

int  GUI_TOUCH_X_MeasureY(void) {
tp_dev.scan(0);

// return tp_dev.y;  //竖屏显示
return tp_dev.x;  //横屏显示
}

3.修改uC/GUI中触摸屏的相关设置
    LCDConf.h中对应修改LCD_XSIZE与LCD_YSIZE,GUITouchConf.h中对应修改GUI_TOUCH_AD_RIGHT与GUI_TOUCH_AD_BOTTOM。这时你的X轴触摸可能是反的,修改一下GUI_TOUCH_MIRROR就好了。




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

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-6-3 16:06:40 | 显示全部楼层
一直努力就很好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-3 21:15:02 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-3 21:15:14 | 显示全部楼层
最好附上源码啊,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

87

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-5-24 21:16:43 | 显示全部楼层
谢谢分享。。。
回复 支持 反对

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2014-5-24 21:23:14 | 显示全部楼层
谢谢分享,把移植好的传上就更好了
回复 支持 反对

使用道具 举报

2

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-7-11
在线时间
0 小时
发表于 2014-7-28 16:03:58 | 显示全部楼层
谢谢分享,是修改的好方法
回复 支持 反对

使用道具 举报

0

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2014-6-6
在线时间
22 小时
发表于 2015-3-17 13:50:41 | 显示全部楼层
#define GUI_TOUCH_AD_RIGHT      240   //原320

#define GUI_TOUCH_AD_BOTTOM     320  //原240

下面这句不用修改
int  GUI_TOUCH_X_MeasureX(void) {

 // u16 x,y;
tp_dev.scan(0);//扫描
  return tp_dev.x[0];
}

int  GUI_TOUCH_X_MeasureY(void) {
 // u16 x,y;
tp_dev.scan(0);//扫描
  return tp_dev.y[0];
}
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-12-18
在线时间
5 小时
发表于 2015-12-25 15:28:34 | 显示全部楼层
楼主改完横屏后,使用gui画圆正常吗?我怎么画出来的是矩形呢?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 01:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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