用的是GT9147的芯片写的程序功能是当按下一个点之后就显示那个点
但是在我没触碰触摸屏的时候自己也会检测到点的按下,然后显示
后面我多次检测数据,判断是不是一直按下的是这个点,但是在最左上角还是有大概4个像素点会被误触发然后显示
想问问各位大神对这个问题有没有啥别的解决方法,谢谢各位啦。
gt9147_rd(GT_GSTID_REG,dat,1); //读取是不是有触摸
if(dat[0]&0x80)
{
dat[0]=dat[0]&0x1f; //判断有多少个触摸(最大5个)
for(i=0;i<dat[0];i++)
{
for(counter=0;counter<100;counter++) //读取100次,判断这个点在100次之中是不是一直被按下
{
make_up(Point[i],&x,&y);
ix=x;iy=y;
make_up(Point[i],&x,&y);
if(x==ix&&y==iy)
z++;
}
if(z==100) //检测到100次都是这个点,确认触摸
{
z=0;
write_pos(x,y,0xf800); //显示按下的点,颜 {MOD}为红 {MOD}
if(x>84&&x<132&&y>84&&y<132)
{
GPIOF->BSRRH=GPIO_Pin_8; //蜂鸣器
}
if(x>184&&x<264&&y>84&&y<116)
{
if(x>184&&x<264&&y>84&&y<116)
GPIOF->BSRRL=GPIO_Pin_8;
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>