OpenEdv-开源电子网

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

STM32F407电容触摸屏的软复位

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-2-26
在线时间
12 小时
发表于 2017-1-24 12:35:45 | 显示全部楼层 |阅读模式
1金钱
1.GT9147 编程指南文件中关于寄存器0X8040中的定义如下
123.jpg

2.软复位程序
if(strcmp((char*)temp,"9147")==0)//ID==9147
{
  temp[0]=0X02;   
  GT9147_WR_Reg(GT_CTRL_REG,temp,1);//软复位GT9147   
向0X8040(控制寄存器)写0x02  (#define GT_CTRL_REG  0X8040    //GT9147控制寄存器)
  
  GT9147_RD_Reg(GT_CFGS_REG,temp,1);//读取GT_CFGS_REG寄存器
  
  if(temp[0]<0X60)//默认版本比较低,需要更新flash配置
  {
   printf("Default Ver:%d\r\n",temp[0]);
   GT9147_Send_Cfg(1);//更新并保存配置
  }
  delay_ms(10);
  temp[0]=0X00;  
  GT9147_WR_Reg(GT_CTRL_REG,temp,1);//结束复位     向0X8040(控制寄存器)写0x000,
  return 0;
}

3.为什么是写0X02就是软复位?写0X00就是结束软复位
GT9147编程指南中定义
     向0X8040写1或2:差值原始值
     向0X8040写0:读取坐标状态 (可以理解为可以开始读取触摸屏的数据了)


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

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-2-26
在线时间
12 小时
 楼主| 发表于 2017-1-24 15:37:13 | 显示全部楼层
上个问题没解决,有来问题了
原子的程序中读取GT9147的版本,当读取值小于0x60时就进行刷新。
实际读取的原始值都是0x62,所以就不用刷新
突发奇想的把触发条件改大了,进行刷新,结果悲剧了,触摸和显示反了,在左屏幕触摸画线,LCD上在右屏幕显示。
怀疑原子的配置数组是否有问题,还是我其他的配置有问题?把其他程序EMWIN的按钮程序刷进去,触摸和显示还是反向。
这是原配置数组
const u8 GT9147_CFG_TBL[]=
{
        0X60,0XE0,0X01,0X20,0X03,0X05,0X35,0X00,0X02,0X08,
        0X1E,0X08,0X50,0X3C,0X0F,0X05,0X00,0X00,0XFF,0X67,
        0X50,0X00,0X00,0X18,0X1A,0X1E,0X14,0X89,0X28,0X0A,
        0X30,0X2E,0XBB,0X0A,0X03,0X00,0X00,0X02,0X33,0X1D,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X32,0X00,0X00,
        0X2A,0X1C,0X5A,0X94,0XC5,0X02,0X07,0X00,0X00,0X00,
        0XB5,0X1F,0X00,0X90,0X28,0X00,0X77,0X32,0X00,0X62,
        0X3F,0X00,0X52,0X50,0X00,0X52,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,
        0X0F,0X03,0X06,0X10,0X42,0XF8,0X0F,0X14,0X00,0X00,
        0X00,0X00,0X1A,0X18,0X16,0X14,0X12,0X10,0X0E,0X0C,
        0X0A,0X08,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0X00,0X29,0X28,0X24,0X22,0X20,0X1F,0X1E,0X1D,
        0X0E,0X0C,0X0A,0X08,0X06,0X05,0X04,0X02,0X00,0XFF,
        0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
        0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
        0XFF,0XFF,0XFF,0XFF,
};
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-1-24 20:38:02 | 显示全部楼层
mikelt 发表于 2017-1-24 15:37
上个问题没解决,有来问题了
原子的程序中读取GT9147的版本,当读取值小于0x60时就进行刷新。
实际读取的 ...

所以别乱改啊。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-2-26
在线时间
12 小时
 楼主| 发表于 2017-1-25 17:20:16 | 显示全部楼层
正点原子 发表于 2017-1-24 20:38
所以别乱改啊。。。

现在怎么办,我已经把GT9147配置版本改成了0X69了,其他都没改。(0X69是我把配置数组的第一个数据0x60改的),其他配置文件不变的话,应该也不会影响GT9147吧。
测试发现X轴方向的是正确的,Y轴方向触摸和显示成了上半屏触摸,下半屏显示。
是否可以说明配置数组本身就是错误的呢。出厂设置好了,实际在我们调试程序时,因读出的版本号
总是不会小于0X60,就永远不会执行配置更新程序。
求帮解决啊。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-1-25 20:09:34 | 显示全部楼层
mikelt 发表于 2017-1-25 17:20
现在怎么办,我已经把GT9147配置版本改成了0X69了,其他都没改。(0X69是我把配置数组的第一个数据0x60改 ...

等我回公司了,给你正常的数组吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-2-26
在线时间
12 小时
 楼主| 发表于 2017-1-26 20:15:27 | 显示全部楼层
正点原子 发表于 2017-1-25 20:09
等我回公司了,给你正常的数组吧

新年快乐,辛苦了。
回复

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-8-23 19:20:58 | 显示全部楼层
@mikelt
问题解决了吗?
回复

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-8-23 19:22:25 | 显示全部楼层
@mikelt  
还有GT9147 编程指南文件是什么?
能发我一份吗?
回复

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-8-23 19:22:47 | 显示全部楼层
@mikelt
还有GT9147 编程指南文件是什么?
能发我一份吗?
回复

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-8-23 20:31:26 | 显示全部楼层
@mikelt
不用给我发了,我找到了
但是你的问题解决了吗?——为什么是写0X02就是软复位?写0X00就是结束软复位
回复

使用道具 举报

0

主题

16

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-8-22
在线时间
5 小时
发表于 2017-8-23 23:03:52 | 显示全部楼层
mikelt 发表于 2017-1-24 15:37
上个问题没解决,有来问题了
原子的程序中读取GT9147的版本,当读取值小于0x60时就进行刷新。
实际读取的 ...

芯片出厂就是0x62么?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 04:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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