STM32 与触摸屏 触摸检测问题

在使用正点原子的电容型触摸屏的时候,遇到程序运行太快,当我按下一次的时候就已经执行检测按下后执行的函数好几次
例如当按下触摸屏时候让一变量自增一,但是刚开始我按一下改变量就自增好几次
最后加上了触摸屏的松手检测

u8 Get_keynum()
{
	u8 key=0;
	tp_dev.scan(0);
	if(tp_dev.sta&TP_PRES_DOWN)			//触摸屏被按下
	{
		if(tp_dev.x[0]<200&&tp_dev.y[0]<800&&tp_dev.y[0]>400)//判断按下指定区域
		{
			while(tp_dev.sta&TP_PRES_DOWN)
			{
				tp_dev.scan(0);
			}
			key=1;
		}
		if(tp_dev.x[0]>200&&tp_dev.y[0]<800&&tp_dev.y[0]>400)
		{
			while(tp_dev.sta&TP_PRES_DOWN)
			{
				tp_dev.scan(0);
			}
			key=2;
		}
		delay_ms(50);
	}
	return key;
		
}

这里用while使程序等待直到松手,while内反复执行扫描函数获取最新状态(因为使松手检测所以不支持连按)

你可能感兴趣的:(学习,笔记)