STM32F407电容触摸屏的软复位

2019-07-20 12:25发布

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 ",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:读取坐标状态 (可以理解为可以开始读取触摸屏的数据了)


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
mikelt
2019-07-21 03:04
正点原子 发表于 2017-1-24 20:38
所以别乱改啊。。。

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

一周热门 更多>