OpenEdv-开源电子网

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

驱动gt911

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2018-2-12
在线时间
11 小时
发表于 2018-9-20 10:05:26 | 显示全部楼层 |阅读模式
本帖最后由 西城 于 2018-9-20 11:32 编辑

使用的是gt911 7寸触摸屏,遇到了一些问题,好在解决了,最主要是配置表的问题,如果可以读出坐标但位置不对,可能是配置表的问题。

测试.png

gt911.rar

5.07 KB, 下载次数: 1457

gt911

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

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2019-5-9
在线时间
10 小时
发表于 2019-6-5 20:32:21 | 显示全部楼层
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对应的0x400,0x258数值了,独出数值也是OK的,可是用原子的触摸屏例程跑出来现象,上边一条始终识别不到,Y轴最小值一直是100+,请问有经历过这个现象吗
回复 支持 2 反对 0

使用道具 举报

1

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-5-28
在线时间
81 小时
发表于 2019-7-17 11:33:23 | 显示全部楼层
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
原来的账号登不上了,特别提示一下:
1.第一次接触摸屏时,把 GT911_Send_Cfg(1);//更新并保存配置  //屏蔽掉 ,否则会把原来的配置表丢失了
2.一定要读取出触摸屏的自带配置表
                        //读出配置表
//                        for(i=0;i<184;i++)
//                        {
//                                GT911_RD_Reg(0X8047+i,temp,1);
//                                printf("TEMP[%x]:%x\r\n",(0X8047+i),temp[0]);
//                        }
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 1 反对 0

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2018-9-20 11:49:51 | 显示全部楼层
我当时也是费了大劲才整出来的   也是配置表的问题
回复 支持 1 反对 0

使用道具 举报

1

主题

231

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2872
金钱
2872
注册时间
2018-1-24
在线时间
258 小时
发表于 2018-9-20 10:48:32 | 显示全部楼层
收藏了
回复 支持 反对

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10560
金钱
10560
注册时间
2017-2-18
在线时间
1911 小时
发表于 2018-9-20 11:30:06 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

0

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2019-5-30
在线时间
4 小时
发表于 2019-6-20 13:36:43 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

286

帖子

0

精华

高级会员

Rank: 4

积分
949
金钱
949
注册时间
2018-4-21
在线时间
264 小时
发表于 2019-6-21 15:47:49 来自手机 | 显示全部楼层
谢谢分享  
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-5-28
在线时间
81 小时
发表于 2019-7-17 11:35:39 | 显示全部楼层
xicheng 发表于 2019-7-17 11:33
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ...

读出配置表后保存一下!!!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-3-26
在线时间
7 小时
发表于 2019-7-23 15:50:59 | 显示全部楼层
xicheng 发表于 2019-7-17 11:35
读出配置表后保存一下!!!

我想问一下,如果原始屏里面的配置表我找不到了,现在屏有部分区域识别不了,我自己配置的话,应该怎么做?谢谢
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-5-28
在线时间
81 小时
发表于 2019-7-24 10:25:27 | 显示全部楼层
你看 发表于 2019-7-23 15:50
我想问一下,如果原始屏里面的配置表我找不到了,现在屏有部分区域识别不了,我自己配置的话,应该怎么做 ...

网上试试别人的配置表,或者拿另外一个屏,把配置表读出来
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-9-12
在线时间
0 小时
发表于 2019-9-12 16:17:19 | 显示全部楼层
赵晓雨 发表于 2019-6-5 20:32
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对 ...

跟你一样的情况   
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-9-12
在线时间
0 小时
发表于 2019-9-12 16:49:51 | 显示全部楼层
赵晓雨 发表于 2019-6-5 20:32
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对 ...

配置表没搞对,可能你的是5寸屏,你用的7寸屏幕的配置表
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-9-24
在线时间
2 小时
发表于 2019-9-24 18:40:25 | 显示全部楼层
赵晓雨 发表于 2019-6-5 20:32
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对 ...

你好,我现在遇到了同样的问题,请问你解决了吗??请指教!
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
861
金钱
861
注册时间
2018-8-31
在线时间
408 小时
发表于 2019-9-25 12:48:06 | 显示全部楼层
原来的配置表搞掉了只有找厂家要,要不就只能多找几个配置表来试
回复 支持 反对

使用道具 举报

12

主题

22

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-7-9
在线时间
23 小时
发表于 2020-2-3 17:24:07 | 显示全部楼层
请问各位大佬有没有遇到如下问题: gt911   1024*600的屏幕会在没有触摸的情况下,错误的进入GT911_Scan 这个回调函数,然后获取的坐标是上次的坐标??
  1. u8 GT911_Scan(u8 mode)
  2. {
  3.         u8 buf[4];
  4.         u8 i = 0;
  5.         u8 res = 0;
  6.         u8 temp;
  7.         static u8 t = 0;                                                                //控制查询间隔,从而降低CPU占用率   
  8.        
  9.         t++;
  10.         if((t%10)==0||t<10)                                                                //空闲时,每进入10次CTP_Scan函数才检测1次,从而节省CPU使用率
  11.         {
  12.                 GT911_RD_Reg(GT911_GSTID_REG, &mode, 1);        //读取触摸点的状态  
  13.                
  14.                 if(mode&0X80&&((mode&0XF)<6))
  15.                 {
  16.                         temp=0;
  17.                         GT911_WR_Reg(GT_GSTID_REG,&temp,1);                //清标志
  18.                 }               

  19.                 if((mode&0XF)&&((mode&0XF)<6))
  20.                 {
  21.                         temp=0XFF<<(mode&0XF);                                        //将点的个数转换为1的位数,匹配tp_dev.sta定义
  22.                         tp_dev.sta=(~temp)|TP_PRES_DOWN|TP_CATH_PRES;
  23.                         for(i=0;i<5;i++)
  24.                         {
  25.                                 if(tp_dev.sta&(1<<i))                                //触摸有效?
  26.                                 {
  27.                                         GT911_RD_Reg(GT911_TPX_TBL[i],buf,4);                                //读取XY坐标值

  28.                                         if(tp_dev.touchtype&0X01)//横屏                                                       
  29.                                         {
  30.                                                 tp_dev.x[i]=(((u16)(buf[1]&0X0F)<<8)+buf[0]);        //lcddev.width-
  31.                                                 tp_dev.y[i]=((u16)(buf[3]&0X0F)<<8)+buf[2];
  32.                                         }
  33.                                         else
  34.                                         {
  35.                                                 tp_dev.y[i]=((u16)(buf[1]&0X0F)<<8)+buf[0];
  36.                                                 tp_dev.x[i]=((u16)(buf[3]&0X0F)<<8)+buf[2];
  37.                                         }
  38.                                 }                       
  39.                         }
  40.                         res=1;

  41.                         if(tp_dev.x[0]>lcddev.width||tp_dev.y[0]>lcddev.height)                        //非法数据(坐标超出了)
  42.                         {
  43.                                 if((mode&0XF)>1)                                        //有其他点有数据,则复第二个触点的数据到第一个触点.
  44.                                 {
  45.                                         tp_dev.x[0]=tp_dev.x[1];
  46.                                         tp_dev.y[0]=tp_dev.y[1];
  47.                                         t=0;                                                        //触发一次,则会最少连续监测10次,从而提高命中率
  48.                                 }
  49.                                 else                                                                //非法数据,则忽略此次数据(还原原来的)  
  50.                                 {
  51.                                         tp_dev.x[0]=tp_dev.x[4];
  52.                                         tp_dev.y[0]=tp_dev.y[4];
  53.                                         mode=0X80;               
  54.                                         tp_dev.sta = temp;                                //恢复tp_dev.sta
  55.                                 }
  56.                         }
  57.                         else
  58.                         {
  59.                                 t=0;                                                                //触发一次,则会最少连续监测10次,从而提高命中率
  60.                         }
  61.                 }
  62.         }
  63.        
  64.         if((mode&0X8F)==0X80)                                                        //无触摸点按下
  65.         {
  66.                 if(tp_dev.sta&TP_PRES_DOWN)                                        //之前是被按下的
  67.                 {
  68.                         tp_dev.sta&=~(1<<7);                                        //标记按键松开
  69.                 }
  70.                 else                                                                                //之前就没有被按下
  71.                 {
  72.                         tp_dev.x[0]=0xffff;
  73.                         tp_dev.y[0]=0xffff;
  74.                         tp_dev.sta&=0XE0;                                                //清除点有效标记       
  75.                 }         
  76.         }        
  77.         if(t>240)
  78.         {
  79.                 t=10;                                                                                //重新从10开始计数
  80.                 //printf("运行到SCAN\r\n");
  81.         }
  82.         return res;
  83. }
复制代码
回复 支持 反对

使用道具 举报

2

主题

172

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3141
金钱
3141
注册时间
2014-11-29
在线时间
183 小时
发表于 2020-3-10 20:18:38 | 显示全部楼层
好东西,正好需要
回复 支持 反对

使用道具 举报

2

主题

172

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3141
金钱
3141
注册时间
2014-11-29
在线时间
183 小时
发表于 2020-3-10 20:19:00 | 显示全部楼层
好东西,正好需要
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-5-7
在线时间
4 小时
发表于 2020-5-7 17:18:03 | 显示全部楼层
xicheng 发表于 2019-7-17 11:33
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ...

请教一下,为什么我现在读取0X814E寄存器,为什么有无触摸都只能读到0X80或者0X00呢?INT引脚一直打脉冲,读不到坐标数据,可以帮看下吗?
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-5-7
在线时间
4 小时
发表于 2020-5-7 17:51:12 | 显示全部楼层
543310151 发表于 2020-5-7 17:18
请教一下,为什么我现在读取0X814E寄存器,为什么有无触摸都只能读到0X80或者0X00呢?INT引脚一直打脉冲 ...

我ID号就是我微信,在线了微我一下
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-6-10
在线时间
11 小时
发表于 2020-6-3 14:30:32 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2020-6-24
在线时间
24 小时
发表于 2020-6-24 15:20:50 | 显示全部楼层
赵晓雨 发表于 2019-6-5 20:32
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对 ...

请问你的问题解决了吗?用楼主的配置参数,同样Y只能到100+
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-5-7
在线时间
4 小时
发表于 2020-7-6 10:50:14 | 显示全部楼层
感谢西城热情指导,移植51单片机成功,给楼主一个大大的赞!
微信图片_20200706104452.jpg
回复 支持 反对

使用道具 举报

164

主题

1230

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1476
金钱
1476
注册时间
2014-5-21
在线时间
342 小时
发表于 2021-1-11 19:01:45 | 显示全部楼层
综合例程里还是没啥用
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2019-9-29
在线时间
29 小时
发表于 2021-2-24 11:49:13 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
773
金钱
773
注册时间
2021-4-15
在线时间
304 小时
发表于 2021-5-19 11:07:28 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2021-8-27
在线时间
1 小时
发表于 2021-8-27 10:40:35 | 显示全部楼层
543310151 发表于 2020-5-7 17:18
请教一下,为什么我现在读取0X814E寄存器,为什么有无触摸都只能读到0X80或者0X00呢?INT引脚一直打脉冲 ...

想问一下,这个问题最后怎么解决的?
回复 支持 反对

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
发表于 2022-6-22 08:51:13 | 显示全部楼层
赵晓雨 发表于 2019-6-5 20:32
楼主,你好,我这边现在驱动GT911,1024*600分辨率的触摸屏。配置表的第2至第5个参数,已经改成1024*600对 ...

我这边也遇到了这个问题,估计还是配置表的问题。
正在尝试各种配置表。
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 15:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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