前言
注意
LCD、触摸屏不是一回事,LCD是输出设备,触摸屏是输入设备。制作触摸屏时特意把它的尺寸做得跟LCD一模一样,并且把触摸屏覆盖在LCD上。
提示:以下是本篇文章正文内容,下面案例可供参考
一、电阻屏的原理
使用欧姆定律求长度X
电阻屏有上下两层薄膜,这两层薄膜就是两个电阻
- 测量X坐标
在xp、xm两端施加3.3V电压,yp和ym不施加电压(yp就相当于探针),测量yp电压值。该电压值就跟X坐标成正比关系
X = 3.3*Vyp/Xmax - 测量y坐标
Y = 3.3*Vxp/Ymax
电阻屏数据
Linux驱动程序中,会上报触点的X、Y数据,注意:这不是LCD的坐标值,需要APP再次处理才能转换为LCD坐标值
二、电容屏的原理
电容屏中有一个控制芯片,它会周期性产生驱动信号,接收电极接收到信号,并可测量电荷大小。
怎么通过电荷计算出触点位置?这由控制芯片实现,这类芯片一般是I2C接口(原理很复杂)
电容屏支持多点触摸
TypeB
该类型的触摸屏能分辨是哪一个触点,上报数据时会先上报触点ID,再上报它的数据。
当有两个触点时(type,code , value):
当ID为45的触点正在移动时:
松开ID为45的触点时(在前面slot已经被设置为0,这里就不需要再次重新设置slot,slot就像一个全局变量一样:如果它没变化的话,就无需再次设置)
最后,松开ID为46的触点: