韦东山嵌入式入门笔记之——应用开发基础篇(七)电阻屏和电容屏

目录


前言

触摸屏分为电阻屏、电容屏。
电阻屏结构简单,在以前很流行;电容屏支持多点触摸,现在的手机基本都是使用电容屏。

注意:LCD、触摸屏不是一回事,LCD 是输出设备,触摸屏是输入设备;触摸屏是外屏,负责触控输入;LCD是内屏,负责显示输出。制作触摸屏时特意把它的尺寸做得跟 LCD 一模一样,并且把触摸屏覆盖在 LCD 上。

一、电阻屏

1、电阻屏原理

电阻屏就是基于欧姆定律制作的,它有上下两层薄膜,这两层薄膜就是两个电阻,如下图所示:

平时上下两层薄膜无触触,当点击触摸屏时,上下两层薄膜接触:这时就可以测量触点电压。过程如下:

① 测量 X 坐标:

在 xp、xm 两端施加 3.3V 电压,yp 和 ym 不施加电压(yp 就相当于探针),测量 yp 电压值。该电压值就跟 X 坐标成正比关系,假设:
X = 3.3*Vyp/Xmax

② 测量 Y 坐标:

在 yp、ym 两端施加 3.3V 电压,xp 和 xm 不施加电压(xp 就相当于探针),测量 xp 电压值。该电压值就跟 Y 坐标成正比关系,假设:

Y = 3.3*Vxp/Ymax

在实际使用时,电阻屏的 Xmax、Ymax 无从得知,所以使用之前要先较准:依次点击触摸屏的四个角和中心点,推算出 X、Y 坐标的公式:

X = func(Vyp)

Y = func(Vxp)

2、电阻屏数据

Linux 驱动程序中,会上报触点的 X、Y 数据,注意: 这不是 LCD 的坐标值,需要 APP 再次处理才能转换为 LCD 坐标值。

对应的 input_event 结构体中,"type、code、value"如下:

二、电容屏

1、原理

电容屏中有一个控制芯片,它会周期性产生驱动信号,接收电极接收到信号,并可测量电荷大小。当电容屏被按下时,相当于引入了新的电容,从而影响了接收电极接收到的电荷大小。主控芯片根据电荷大小即可计算出触点位置,这类芯片一般是 I2C 接口。 我们只需要编写程序,通过 I2C 读取芯片寄存器即可得到这些数据。

2、电容屏数据

电容屏可以支持多点触摸(Multi touch),驱动程序上报的数据中怎么分辨触点?

这有两种方法:Type A、Type B,这也对应两种类型的触摸屏。其中Type A只能上传触电数据给软件,由软件分析出触电位置,这类触摸屏已经淘汰过时了,所以我们主要讲Type B。

Type B

该类型的触摸屏能分辨是哪一个触点,上报数据时会先上报触点 ID,再上报它的数据。
当有 2 个触点时(type, code, value):


当ID为45的触点移动时:

松开 ID 为 45 的触点时:(这里无需重新设置SLOT,SLOT 就像一个全局变量一样:如果它没变化的话,就无需再次设置


最后,松开 ID 为 46 的触点:(这列因为更改了触点,所以要申明SLOT为1)

3、实际的实验数据

假设你的开发板上电容屏对应的设备节点是/dev/input/event0,执行以下命令:

bash 复制代码
hexdump /dev/input/event0

用一个手指点击触摸屏,得到类似如下的数据:

在上面的数据中,为了兼容老程序,它也上报了 ABS_X、ABS_Y 数据,电阻触摸屏就是使用这类型的数据。所以基于电阻屏的程序,也可以用在电容屏上。而两个MAJOR数据则是表示TOUCH面积的一个参数,暂时不需要了解。其他的基本和上面描述的一致。

使用两个手指点击触摸屏时,得到类似如下的数据:


为了兼容老程序,它也上报了 ABS_X、ABS_Y 数据,但是只上报第 1 个触点的数据。其他的也和也之前分析的一致。

相关推荐
bubiyoushang8881 天前
基于STM32F103与A3988驱动芯片的两相四线步进电机控制方案
stm32·单片机·嵌入式硬件
bai5459361 天前
STM32 备份寄存器
stm32·单片机·嵌入式硬件
cold_Mirac1 天前
stm32-freertos和逻辑编程下堆栈功能的区分
stm32·单片机·嵌入式硬件
youcans_1 天前
【动手学STM32G4】(3)上位机实时显示多路波形
stm32·单片机·嵌入式硬件·上位机
铁手飞鹰1 天前
[HAL库分析—GPIO]
c语言·stm32·单片机·嵌入式硬件
yrx0203071 天前
STM32F103通过L298N驱动两相4线步进电机【42步进电机】
stm32·单片机·嵌入式硬件·步进电机
是大强1 天前
3d打印材料asa和abs区别
嵌入式硬件
周周记笔记1 天前
LC项目实战一:原理图DRC(二)
嵌入式硬件·pcb
安当加密1 天前
基于 SLA 的操作系统双因素安全登录:USB Key 与 OTP 动态口令实践
单片机·嵌入式硬件·安全
硅农深芯1 天前
六大核心芯片:MCU/SOC/DSP/FPGA/NPU/GPU 的区别与应用解析
单片机·嵌入式硬件·fpga开发