微信的网站怎么做,洛阳青峰网络公司做网站,网站排名 优帮云,深圳创新投资公司官网触摸屏实验 1 触摸屏介绍1.1 基本应用介绍1.2 触摸屏工作原理介绍1.3 硬件介绍 2 应用代码编写2.1 找到输入设备2.2 打开驱动2.3 驱动查询应用2.4 应用结果 1 触摸屏介绍
1.1 基本应用介绍
LCD 显示屏包括显示屏和触摸屏#xff0c;上层的是触摸屏#xff0c;下层是显示屏。… 触摸屏实验 1 触摸屏介绍1.1 基本应用介绍1.2 触摸屏工作原理介绍1.3 硬件介绍 2 应用代码编写2.1 找到输入设备2.2 打开驱动2.3 驱动查询应用2.4 应用结果 1 触摸屏介绍
1.1 基本应用介绍
LCD 显示屏包括显示屏和触摸屏上层的是触摸屏下层是显示屏。
触摸屏touch screen又称为“触控屏”、“触控面板”是一种可接收输入讯号的感应式液晶显示装置当接触了屏幕上的图形按钮时屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置可用以取代机械式的按钮面板并借由液晶显示画面制造出生动的影音效果。触摸屏作为一种最新的电脑输入设备它是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌是极富吸引力的全新多媒体交互设备。不用学习人人都会使用是触摸屏最大的魔力这一点无论是键盘还是鼠标都无法与其相比。触摸屏主要应用于公共信息的查询、领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。
1.2 触摸屏工作原理介绍
按照触摸屏的工作原理和传输信息的介质把触摸屏分为四种分别为电阻式、电容感应式、红外线式以及表面声波式。 电容式触摸屏是利用人体的电流感应进行工作的。电容式触摸屏是一块四层复合玻璃屏玻璃屏的内表面和夹层各涂有一层 ITO最外层是一薄层矽土玻璃保护层,夹层 ITO 涂层作为工作面四个角上引出四个电极内层 ITO 为屏蔽层以保证良好的工作环境。当手指触摸在金属层上时由于人体电场用户和触摸屏表面形成以一个耦合电容对于高频电流来说电容是直接导体于是手指从接触点吸走一个很小的电流。这个电流分从别触摸屏的四角上的电极中流出并且流经这四个电极的电流与手指到四角的距离成正比控制器通过对这四个电流比例的精确计算得出触摸点的位置。
反光性主要是指由于镜面反射造成图像上重叠身后的光影如人影、窗户、灯光等。因此触摸屏都提供另外一种经过表面处理的型号磨砂面触摸屏也叫防眩型价格略高一些不过防眩型的透光性和清晰度也随之有较大幅度的下降。 绝对的坐标系统要选哪就直接点那。检测触摸并定位各种触摸屏技术都是依靠各自的传感器来工作的甚至有的触摸屏本身就是一套传 感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。
1.3 硬件介绍
本触摸屏是 I2C 接口和中断引脚I2C 使用 I2C3中断是 GPIO4_IO00通过外部触摸触发中断产生数据经过 I2C 发送给应用层。 2 应用代码编写
2.1 找到输入设备
cat /proc/bus/input/devices查看触摸屏为第几个输入设备找到 NameGSL_TP这一栏可以看到 Handlers 为 event1。
rootimx8mmevk:/mnt/SRC/exp/04_module/03_touch# cat /proc/bus/input/devices
I: Bus0000 Vendor0000 Product0000 Version0000
N: NameGSL_TP
P: Phys
S: Sysfs/devices/virtual/input/input1
U: Uniq
H: Handlersevent1
B: PROP2
B: EV10000b
B: KEY0
B: ABS2658000000000002.2 打开驱动
char buf[256] { 0, }; /* RATS: Use ok */
int version;
int fd 0;
char *tmp;
int ID;
struct input_event event;
if ((fd open(/dev/input/event1, O_RDONLY)) 0) //打开触摸屏设备
{
perror(gyro test);
return 1;
}
ioctl(fd, EVIOCGVERSION, version); //获取版本号
ioctl(fd, EVIOCGID, ID); //ID 号
ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);
printf( evdev version: %d.%d.%d\n, version 16, (version 8) 0xff, version0xff);
printf( evdev id: %d\n,ID);
printf( name: %s\n, buf);2.3 驱动查询应用
while(1){if(read(fd,event,sizeof(event))sizeof(event)) {//读取数值if(event.typeEV_ABS){ //触摸屏信号switch (event.code) { //判断类型case ABS_X: tmp ABS_X; break; //X 轴case ABS_Y: tmp ABS_Y; break; //Y 轴case ABS_MT_POSITION_X: tmp ABS_MT_POSITION_x; break;case ABS_MT_POSITION_Y: tmp ABS_MT_POSITION_y; break;}if(-1024event.valueevent.value1024)printf(gyro %s : %d\n, tmp, event.value);}}
}
close(fd);2.4 应用结果
实验效果触摸屏幕显示 X 和 Y 坐标值。
evdev version: 1.0.1
evdev id: 0
name: GSL_TP
gyro (null) : 0
gyro (null) : 50
gyro ABS_MT_POSITION_x : 46
gyro ABS_MT_POSITION_y : 45
gyro ABS_MT_POSITION_y : 1
gyro ABS_MT_POSITION_y : -1