你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
关于LCD屏幕的旋转问题,使用EMWIN开发
[复制链接]
yangxijun01
提问时间:2018-8-14 15:34 /
问答
是否解决:
最近在用EMWIN做GUI方面的开发,一个界面全部做完了,但是想把屏幕的内容旋转90度。一直没搞出来。请教大神指点一下。谢谢!
一下是我的界面的截图:
赞
0
收藏
1
评论
2
分享
发布时间:2018-8-14 15:34
举报
请先
登录
后回复
2个回答
wenyangzeng
回答时间:2018-8-14 22:10:39
a0a.1 32b0c
在GUIDRV_Template.c里,应该就是改变显示的代码了:
/*********************************************************************
*
* Macros for MIRROR_, SWAP_ and LUT_
*/
#if (!defined (LCD_LUT_COM) && !defined(LCD_LUT_SEG))
#if (!LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) x
#define LOG2PHYS_Y(x, y) y
#elif (!LCD_MIRROR_X && !LCD_MIRROR_Y && LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) y
#define LOG2PHYS_Y(x, y) x
#elif (!LCD_MIRROR_X && LCD_MIRROR_Y && !LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) x
#define LOG2PHYS_Y(x, y) LCD_YSIZE - 1 - (y)
#elif (!LCD_MIRROR_X && LCD_MIRROR_Y && LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) y
#define LOG2PHYS_Y(x, y) LCD_XSIZE - 1 - (x)
#elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) LCD_XSIZE - 1 - (x)
#define LOG2PHYS_Y(x, y) y
#elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) LCD_YSIZE - 1 - (y)
#define LOG2PHYS_Y(x, y) x
#elif ( LCD_MIRROR_X && LCD_MIRROR_Y && !LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) LCD_XSIZE - 1 - (x)
#define LOG2PHYS_Y(x, y) LCD_YSIZE - 1 - (y)
#elif ( LCD_MIRROR_X && LCD_MIRROR_Y && LCD_SWAP_XY)
#define LOG2PHYS_X(x, y) LCD_YSIZE - 1 - (y)
#define LOG2PHYS_Y(x, y) LCD_XSIZE - 1 - (x)
#endif
#else
#if ( defined (LCD_LUT_COM) && !defined(LCD_LUT_SEG))
#define LOG2PHYS_X(x, y) x
#define LOG2PHYS_Y(x, y) LCD__aLine2Com0[y]
#elif (!defined (LCD_LUT_COM) && defined(LCD_LUT_SEG))
#define LOG2PHYS_X(x, y) LCD__aCol2Seg0[x]
#define LOG2PHYS_Y(x, y) y
#elif ( defined (LCD_LUT_COM) && defined(LCD_LUT_SEG))
#define LOG2PHYS_X(x, y) LCD__aCol2Seg0[x]
#define LOG2PHYS_Y(x, y) LCD__aLine2Com0[y]
#endif
#endif
复制代码
评分
参与人数
1
蝴蝶豆
+4
收起
理由
zero99
+ 4
查看全部评分
赞
0
评论
回复
支持
反对
feixiang20
回答时间:2018-8-15 00:27:33
a0a.1 32b0c
帮你查了类似问题的解决方法,GUI_SetOrientation(),试试这个行不。
如果你有自己写过emwin的驱动,那么你就知道怎么转过来了,提示一下,使用lcddrv_temp......那个自己写一个,把读写点,画矩形这几个函数写好就可以了。
找到了一个方法说,在LCDconf.h中:
#define LCD_SWAP_XY 1
以将xy轴对换,以此实现坐标轴的旋转。不过单独进行此定义,并不能完全实现横屏和竖屏的转换,实际的旋转效果,后来在emWin的user mannual中找到了具体介绍,对应的就是,通过LCD_MIRROR_X,LCD_MIRROR_Y,LCD_SWAP_XY 的三者的组合,可以实现画面的8个不同方向旋转。有点要提醒的是,如果当前使用的emWin,也就是大家常说的开源的ucgui的时候,用的库是编译好的libemWin.a话,那这些宏定义,就不起作用了。只有在你有源码的情况下,改宏的配置,然后重新编译,这样才能真正实现横屏和竖屏的转换。
评分
参与人数
1
蝴蝶豆
+4
收起
理由
zero99
+ 4
查看全部评分
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
如果你有自己写过emwin的驱动,那么你就知道怎么转过来了,提示一下,使用lcddrv_temp......那个自己写一个,把读写点,画矩形这几个函数写好就可以了。
找到了一个方法说,在LCDconf.h中:
#define LCD_SWAP_XY 1
以将xy轴对换,以此实现坐标轴的旋转。不过单独进行此定义,并不能完全实现横屏和竖屏的转换,实际的旋转效果,后来在emWin的user mannual中找到了具体介绍,对应的就是,通过LCD_MIRROR_X,LCD_MIRROR_Y,LCD_SWAP_XY 的三者的组合,可以实现画面的8个不同方向旋转。有点要提醒的是,如果当前使用的emWin,也就是大家常说的开源的ucgui的时候,用的库是编译好的libemWin.a话,那这些宏定义,就不起作用了。只有在你有源码的情况下,改宏的配置,然后重新编译,这样才能真正实现横屏和竖屏的转换。
评分
查看全部评分