OpenEdv-开源电子网

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

7寸电容屏UCGUI移植,显示的字符是镜像的,如何修正?

[复制链接]

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
发表于 2014-2-15 12:43:50 | 显示全部楼层 |阅读模式


液晶的扫屏方向是从横着的那行较大的字起,向上扫的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-15 19:07:35 | 显示全部楼层
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-15 19:08:58 | 显示全部楼层


 
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-15 20:53:50 | 显示全部楼层
回复【3楼】龙胜阳子:
---------------------------------

#ifndef LCDCONF_H
#define LCDCONF_H

/*********************************************************************
*
*                   General configuration of LCD
*
**********************************************************************
*/

#define LCD_XSIZE      (480)   /* X-resolution of LCD, Logical coor. */
#define LCD_YSIZE      (800)   /* Y-resolution of LCD, Logical coor. */

//#define LCD_BITSPERPIXEL (8)
#define LCD_BITSPERPIXEL (16)

#define LCD_CONTROLLER (-1) /* 9320 -> 5420 */
#define LCD_FIXEDPALETTE   (565)
#define LCD_SWAP_RB        (1)
#define LCD_SWAP_XY        (1)
//LCD_MIRROR_X
//#define LCD_MIRROR_X       (1)
//#define LCD_MIRROR_y       (1)
#define LCD_INIT_CONTROLLER()  ili9320_Initializtion();

#endif /* LCDCONF_H 


改了,怎么烧进去还是反向的。
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-15 21:08:45 | 显示全部楼层
回复【4楼】搁浅:
---------------------------------
//#define LCD_MIRROR_X       (1) 
//#define LCD_MIRROR_y       (1) 
前面的//去掉了吗
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-15 21:40:59 | 显示全部楼层
回复【5楼】龙胜阳子:
---------------------------------
都试过了,一样没反应,你以前有遇过这种情况吗?
回复 支持 反对

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2014-2-16 09:52:53 | 显示全部楼层
是不是LCD的长宽数据没有设置好?瞎猜的
手艺人要内外兼修。
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-2-16 10:07:15 | 显示全部楼层
线过长?或初始化代码查下?
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-16 10:17:49 | 显示全部楼层
回复【6楼】搁浅:
---------------------------------
我遇到过  把程序修改下就好了
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-16 10:18:33 | 显示全部楼层
回复【6楼】搁浅:
---------------------------------
修改LCDDriver 文件夹下 LCDDummy.c文件中的画点、读点函数
1.LCD_SetPoint(x, y,PixelIndex);
  修改为:LCD_SetPoint(xPhys, yPhys,PixelIndex);
2.LCD_ReadPoint(x, y); //读点
   ixelIndex = 0;
  修改为:PixelIndex =LCD_ReadPoint(xPhys, yPhys); //读点
         //PixelIndex = 0;
3.LCDDriver 文件夹下 LCDDummy.c文件大约60行处  
  #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) y
            #define LOG2PHYS_Y(x, y) LCD_XSIZE-1-x (红色x为小写)
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-16 14:30:28 | 显示全部楼层


回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-16 14:32:50 | 显示全部楼层
回复【6楼】搁浅:
---------------------------------
长宽应该没有错,错了也不是这个效果
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-16 14:34:02 | 显示全部楼层
回复【10楼】龙胜阳子:
---------------------------------
我按你的方法改就变成上面那个样子了,是不是我的扫频方向不对,所以会反过来?
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-16 14:35:40 | 显示全部楼层
回复【8楼】simms01:
---------------------------------
初始化代码直接就是用原子例程的代码,应该不会有问题。
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-16 16:01:41 | 显示全部楼层
回复【11楼】搁浅:
---------------------------------
#define LCD_SWAP_XY        (1)              这个是横竖屏切换的 
#define LCD_MIRROR_X       (1)           
#define LCD_MIRROR_y       (1) 
X和Y镜像你要一个一个试了
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-16 16:03:54 | 显示全部楼层
回复【11楼】搁浅:
---------------------------------
我把LCDDriver 文件夹下 LCDDummy.c文件大约60行处 修改成这样了



#if (!defined (LCD_LUT_COM) && !defined(LCD_LUT_SEG))
  #if   (!LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY)     //0  0  0 
    #define LOG2PHYS_X(x, y) x
    #define LOG2PHYS_Y(x, y) y
  #elif (!LCD_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY)     //0  0  1  
    #define LOG2PHYS_X(x, y) y
    //#define LOG2PHYS_Y(x, y) x
#define LOG2PHYS_Y(x, y) LCD_XSIZE-1-x                      //2014-2-4修改
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY)     //0  1  0  
    //#define LOG2PHYS_X(x, y) x
#define LOG2PHYS_X(x, y) LCD_XSIZE-1-x                      //2014-2-4修改
    #define LOG2PHYS_Y(x, y) LCD_YSIZE - 1 - (y)
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY)  //0  1  1  
    //#define LOG2PHYS_X(x, y) y
#define LOG2PHYS_X(x, y) LCD_YSIZE - 1 - (y)                //2014-2-4修改
    #define LOG2PHYS_Y(x, y) LCD_XSIZE - 1 - (x)
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY)  //1  0  0 
    #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)  //1  0  1 
    //#define LOG2PHYS_X(x, y) LCD_YSIZE - 1 - (y)
#define LOG2PHYS_X(x, y) y                                  //2014-2-4修改
    #define LOG2PHYS_Y(x, y) x
  #elif ( LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY)  //1  1  0 
    #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)  //1  1  1 
    #define LOG2PHYS_X(x, y) LCD_YSIZE - 1 - (y)
    //#define LOG2PHYS_Y(x, y) LCD_XSIZE - 1 - (x)
#define LOG2PHYS_Y(x, y) x                                  //2014-2-4修改
  #endif
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2014-2-16 16:04:39 | 显示全部楼层
回复【11楼】搁浅:
---------------------------------
我原来的也是方向不对修改完就好了
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-16 16:28:51 | 显示全部楼层
回复【17楼】龙胜阳子:
---------------------------------
可以了,我就把return  ILI93xx_ReadPoint(x, y);改成return  ILI93xx_ReadPoint(y, x);,
ili9320_SetPoint(x, y,PixelIndex);改成ili9320_SetPoint(y, x,PixelIndex);
就可以了。
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-19 14:19:35 | 显示全部楼层
这是我移植的ucgui,可以显示,不能触摸。
回复 支持 反对

使用道具 举报

10

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2013-8-17
在线时间
3 小时
 楼主| 发表于 2014-2-19 14:25:48 | 显示全部楼层
这是我移植的ucgui,可以显示,不能触摸。

MINISTM32 7寸大屏UCGUI移植.zip

1.52 MB, 下载次数: 103

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 07:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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