qt1106芯片演示DEMO:触摸功能与人体接近检测

版权申诉
0 下载量 148 浏览量 更新于2024-10-06 收藏 8KB RAR 举报
资源摘要信息:"TP_TEST.rar_DEMO_TP测试" 标题说明: 本资源标题为"TP_TEST.rar_DEMO_TP测试",其中"TP_TEST"可能代表触摸屏测试(Touch Panel Test)的意思,而"DEMO"一词表示该资源是一个演示程序,"TP测试"明确指出该演示程序主要用于测试触摸屏性能。标题中的".rar"扩展名暗示资源以RAR压缩格式提供,RAR是一种常见的压缩文件格式,能够有效减小文件大小并支持分卷压缩,以便于文件的存储和传输。 描述说明: 描述中提到的"qt1106芯片演示DEMO程序"指的是一个专门针对qt1106型号芯片的演示程序。qt1106可能是指某种特定的触摸屏控制器或传感器芯片,它用于实现触摸功能。该DEMO程序的一个显著功能是"可测试触摸功能",这意味着用户可以通过这个程序来验证和测试触摸屏的响应性能。描述中进一步提到"灵敏度设置较高时,能完成人体接近检测",这表明除了基本的触摸测试外,该程序还能够调整灵敏度以实现人体接近或存在感测功能,这在一些需要支持接近感应功能的设备中特别有用,如某些智能照明系统或自动开启的设备。 标签说明: 标签"demo tp测试"强调了该资源是一个用于演示和测试触摸屏性能的工具。标签通常用于辅助分类、搜索和过滤资源,在本例中,标签说明了该压缩包资源的主要用途和内容。 压缩包子文件的文件名称列表说明: - qt1106.c: 此文件可能是包含qt1106芯片相关编程逻辑的源代码文件。它可能涉及与触摸屏控制器的通信、触摸检测算法以及可能的人体接近检测功能的实现。 - timer.c: 此文件包含的源代码可能负责实现定时器功能。在触摸屏测试程序中,定时器可能用于处理超时、间隔采样或其他与时间相关的行为。 - main.c: 作为主程序文件,它将包含主函数(main),是程序执行的入口点。此文件可能协调其他模块的工作,管理用户输入,以及提供测试结果的展示逻辑。 - qt1106.h: 此文件是头文件,包含了qt1106.c中定义的函数和变量的声明。头文件通常提供对外接口,使得其他模块可以调用定义在.c文件中的函数和变量。 - timer.h: 类似地,timer.h头文件包含timer.c中定义的函数和变量的声明。这可能涉及定时器设置和回调函数的声明,以便于主程序调用。 - common.h: 这是一个通用头文件,可能包含多个源文件共用的宏定义、类型定义、全局变量声明等。在不同的源文件中包含这个头文件可以保证程序的各个部分能一致地访问共享的编程资源。 综合上述信息,我们可以得知这是一个专门为qt1106芯片设计的触摸屏测试演示程序,它包含了必要的源代码和头文件来实现触摸检测和灵敏度调整,特别适用于评估触摸屏的性能和响应能力。此外,该程序还能够用于演示如何实现人体接近检测功能,这为开发者提供了一个实用的工具来测试和验证硬件设备的交互能力。开发者在处理类似项目时,可以参考这些文件的组织结构和编程逻辑,来构建自己的测试程序或应用。

修改这个函数,要实现防止连续点按 while (1) { tp_dev.scan(0); if (tp_dev.sta & TP_PRES_DOWN) { //触摸屏被按下 if (tp_dev.x[0] > 0 && tp_dev.x[0] < 130 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 0 && tp_dev.x[0] < 130 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '1'; } } else if (tp_dev.x[0] > 130 && tp_dev.x[0] < 260 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 130 && tp_dev.x[0] < 260 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '2'; } } else if (tp_dev.x[0] > 260 && tp_dev.x[0] < 390 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 260 && tp_dev.x[0] < 390 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] ='3'; } } else if (tp_dev.x[0] > 390 && tp_dev.x[0] < 520 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 390 && tp_dev.x[0] < 520 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i < 5) { password[i++] = '4'; } } else if (tp_dev.x[0] > 520 && tp_dev.x[0] < 650 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 520 && tp_dev.x[0] < 650 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i > 0) { password[--i] = '\0'; } } else if (tp_dev.x[0] > 650 && tp_dev.x[0] < 800 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480) { while(tp_dev.x[0] > 650 && tp_dev.x[0] < 800 && tp_dev.y[0] > 380 && tp_dev.y[0] < 480){ tp_dev.scan(0); } if (i == 4) { break; //退出密码输入循环 } else { Show_Hz16(300,250,"提示信息:用户名或密码错误",RED,WHITE); } } //显示部分 LCD_ShowString(400,150,400,24,24,password); } }

2023-05-22 上传