电阻触摸屏驱动

1 电阻触摸屏介绍

      如下图所示,该开发板使用的是4线触摸屏,方框标记的引脚是专门用来接收模拟输入信号。
在这里插入图片描述
  引脚说明:
  YM: (Y Minus)触摸屏的Y坐标的负线,也可以用Y -表示
  YP : (Y Power)触摸屏的Y坐标的正线, 也可以用Y+表示
  XM: (Y Minus)触摸屏的Y坐标的负线, 也可以用X-表示
  XP : (Y Power)触摸屏的Y坐标的正线, 也可以用X+表示

1.1 基本原理

         电阻触摸屏包含了两个阻性层(电阻阻值均匀),如下图所示
在这里插入图片描述
  当没有触摸按下时,X层和Y层是分离的,此时就测不到电压。
  测量x方向的坐标时:如下图, 把XP接3.3V , XM接0V, YP和YM悬空,我们以按压X坐标的中间位置, X层和Y层便闭合了,此时YP就会输出当前X坐标值的1.66V给CPU。
在这里插入图片描述
  测量y坐标时:如下图, 把YP接3.3V , YM接0V, XP和XM悬空,我们以按压X坐标的中间位置, X层和Y层便闭合了,此时XP就会输出当前X坐标值的1.66V给CPU 。
加粗样式

2 触摸屏驱动需要使用的结构体与函数

input_dev结构体分析:

struct input_dev {
        
       void *private;
       const char *name;  //设备名字
       const char *phys;  //文件路径,比如 input/buttons
       const char *uniq;  
       struct input_id id;

       unsigned long evbit[NBITS(EV_MAX)];  //表示支持哪类事件,常用有以下几种事件(可以多选)
       //EV_SYN      同步事件,当使用input_event()函数后,就要使用这个上报个同步事件
       //EV_KEY       键盘事件
       //EV_REL       (relative)相对坐标事件,比如鼠标
       //EV_ABS       (absolute)绝对坐标事件,比如摇杆、触摸屏感应
       //EV_MSC      其他事件,功能
       //EV_LED       LED灯事件
       //EV_SND      (sound)声音事件
       //EV_REP       重复键盘按键事件
       //(内部会定义一个定时器,若有键盘按键事件一直按下/松开,就重复定时,时间一到就上报事件)  

       //EV_FF         受力事件
       //EV_PWR      电源事件
       //EV_FF_STATUS  受力状态事件

       unsigned long keybit[NBITS(KEY_MAX)];   //存放支持的键盘按键值
       //键盘变量定义在:include/linux/input.h, 比如: KEY_L(按键L)、BTN_TOUCH(触摸屏的按键)

       unsigned long relbit[NBITS(REL_MAX)];    //存放支持的相对坐标值
       unsigned long absbit[NBITS(ABS_MAX)];   //存放支持的绝对坐标值,存放下面4个absxxx[]
       unsigned long mscbit[NBITS(MSC_MAX)];   //存放支持的其它事件,也就是功能
       unsigned long ledbit[NBITS(LED_MAX)];    //存放支持的各种状态LED
       unsigned long sndbit[NBITS(SND_MAX)];    //存放支持的各种声音
       unsigned long ffbit[NBITS(FF_MAX)];       //存放支持的受力设备
       unsigned long swbit[NBITS(SW_MAX)];     //存放支持的开关功能
         ... ...

 
/*以下4个数组都会保存在上面成员absbit[]里,数组号为:ABS_xx ,位于include/linux/input.h */
/*比如数组0,标志就是ABS_X,以下4个的absXXX[0]就是表示绝对位移X方向的最大值、最小值... */
/*对于触摸屏常用的标志有:
ABS_X(X坐标方向), ABS_Y(Y坐标方向), ABS_PRESSURE(压力方向,比如绘图,越用力线就越粗)* / 
       int absmax[ABS_MAX + 1];      //绝对坐标的最大值
       int absmin[ABS_MAX + 1];      //绝对坐标的最小值
       int absfuzz[ABS_MAX + 1];     //绝对坐标的干扰值,默认为0,
       int absflat[ABS_MAX + 1];     //绝对坐标的平焊位置,默认为0
... ...

相关函数介绍

struct input_dev *input_allocate_device(void);  //向内存中分配input_dev结构体

input_free_device(struct input_dev *dev);   //释放内存中的input_dev结构体

input_register_device(struct input_dev *dev)
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用于四线电阻的触摸驱动 触摸屏的简要介绍和安装准备 通用的四线电阻触摸屏的特点; 电阻触摸屏的安装准备; 安装电阻触摸屏的注意事项; 触摸屏的安装 触摸屏的安装过程; 触摸屏驱动软件安装; 触摸屏的硬件安装; 触摸屏的具体使用方法和注意事项 排除故障的要点总结 触摸屏的简要介绍和安装准备 通用的四线电阻触摸屏的特点;    最近几年, 人机对话的界面刚发展起来的一项新技术,它通过计算机技术四线/触摸屏控制处理声音、图像、视频、文字、动画等信息,并在这些信息间建立一定的逻辑关系,使之成为能交互地进行信息存取和输出的集成系统。    触摸屏系统符合简便、经济、高效的原则,具有人机交互性好、 操作简单灵活、输入速度快等特点。它与迅猛发展的计算机网络和四线/触摸屏控制多媒体技术相结合,使用者仅仅用手指触摸屏幕,就能进行信息检索、数据分析,甚至可以做出身临其境、栩栩如生的效果;较键盘输入简单、直观、快捷,具有丰富多采的表现能力,比以往任何传媒更具亲合力。    触摸屏在我国已经得到了非常广阔的应用,主要是公共信息的查询;如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。如今,触摸屏特别是电阻触摸屏,在不断走入大众家庭。    ,四线电阻触摸屏电阻触摸屏体部分是一块与显示器表面非常配合的多层四线/触摸屏控制复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层而内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘,见图1。    图1 四线电阻触摸屏的基本原理    当手指触摸屏幕时,平常相互绝缘的两层导电层就在触摸点位置有了一个接触导通,因其中一面导电层接通Y纵轴方向的参考电压Vref=5v均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行模数A/D转换,并将得到的电压值与参考电压Vref相比即可得到触摸点的Y轴坐标,同理得出X横轴的四线/触摸屏控制坐标,这就是所有电阻技术触摸屏共同的最基本原理。     四线电阻触摸屏的特点:高解析度(能轻松达到4096*4096),高速传输反应*(小于1/100秒)。 表面硬度处理,减少擦伤、刮伤及防化学处理。一次校正,永不漂移,稳定性高。不怕灰尘、水汽和油污,使用环境要求低,可以用任何非菱角的物体来触摸,技术工艺很成熟,成本较低,是最为广泛实用的触摸屏电阻触摸屏的安装准备; 首先,要准备好基本部件:包括:触摸屏,触摸笔,驱动程序(光盘),控制卡,连接线和延长线*(可根据实际需要取舍)。 控制卡按接口类型分为USB型和串口型两种*(通常选用USB型),

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值