1. 触摸屏硬件基础:电阻屏与电容屏原理、I2C/SPI接口协议、触摸控制器芯片选型

做嵌入式Qt开发,触摸屏是绕不开的坎。我刚开始接触这块时,也以为只要调调驱动就行了。结果呢?硬件选型不对,协议没搞懂,项目直接卡壳两周。今天咱们就把触摸屏的硬件底子彻底捋一遍。

1.1 电阻屏 vs 电容屏:原理与实战选择

先说电阻屏。它的结构其实很简单——两层透明导电层中间夹着空气。你用手指或者任何硬物按下去,两层就接触了。控制器检测到电压变化,算出坐标。

电阻屏核心特点:

  • 支持任何物体触摸(手指、手套、笔尖)
  • 成本低,单点触摸
  • 透光率差(约70-80%)
  • 容易磨损,寿命短

电容屏就不一样了。它利用人体电场和屏幕表面形成的耦合电容来检测触摸。说白了,你的手指就是电路的一部分。我有个项目用过电阻屏做工业控制面板,工人戴着手套操作完全没问题。但换成电容屏,手套一戴就废了。

我的选型建议:

  • 工业环境、戴手套场景 → 电阻屏
  • 消费电子、多点触控需求 → 电容屏
  • 户外强光环境 → 电容屏(透光率更好)
对比项 电阻屏 电容屏
触摸方式 压力感应 电容感应
多点触控 不支持 支持(2-10点)
透光率 70-80% 90%以上
耐用性 一般(易磨损) 好(玻璃表面)
成本 低 中高

1.2 I2C与SPI接口协议:驱动通信的命脉

触摸控制器和主控芯片怎么通信?主流就两种:I2C和SPI。我见过不少新手在这上面栽跟头。

I2C协议

I2C只有两根线:SCL(时钟)和SDA(数据)。它用地址来区分设备。每个触摸芯片都有一个7位或10位地址。比如常见的FT5x06系列,地址是0x38。

我曾经踩过的坑:I2C上拉电阻没选对。10kΩ上拉在100kHz下没问题,但换成400kHz就波形畸变了。后来换成4.7kΩ才稳定。记住,速度越高,上拉电阻要越小。

// I2C读取触摸坐标的典型流程
uint8_t addr = 0x38 << 1;  // 7位地址左移
uint8_t reg = 0x02;         // 触摸状态寄存器
uint8_t buf[4];

i2c_start();
i2c_write(addr | 0);       // 写方向
i2c_write(reg);            // 寄存器地址
i2c_stop();

i2c_start();
i2c_write(addr | 1);       // 读方向
i2c_read(buf, 4);          // 读取4字节数据
i2c_stop();

// buf[0] = 触摸点数
// buf[1..2] = X坐标
// buf[3..4] = Y坐标

SPI协议

SPI就快多了。四根线:SCLK、MOSI、MISO、CS。它没有地址概念,靠片选信号选设备。我习惯用SPI做高速触摸屏,比如需要60fps刷新率的场景。

对比项 I2C SPI
线数 2根 4根
速度 100kHz-3.4MHz 10MHz-50MHz
多设备 地址寻址 片选信号
适合场景 低速、线数受限 高速、大数据量

1.3 触摸控制器芯片选型

选芯片这事儿,我吃过不少亏。给你列几个主流方案,都是我实际用过的。

常用触摸控制器芯片:

  • FT5x06系列(FocalTech):电容屏,I2C接口,支持5点触控。性价比高,资料多。我第一个Qt触摸项目就用它。
  • GT911系列(Goodix):电容屏,I2C/SPI可选,支持10点。抗干扰能力强,适合工业环境。
  • TSC2007(TI):电阻屏,I2C接口。经典芯片,稳定可靠。我有个老项目用了5年没出过问题。
  • ADS7846(TI):电阻屏,SPI接口。精度高,适合绘图板类应用。

选型时我一般看三个指标:接口类型、触控点数、工作温度。工业项目必须选-40°C到85°C的芯片。消费类可以放宽到-20°C到70°C。

我的选型流程:

  1. 确定触摸屏类型(电阻/电容)
  2. 确定接口(I2C/SPI)
  3. 确定触控点数需求
  4. 查看工作温度范围
  5. 检查Linux内核是否已支持(省去写驱动的时间)

1.4 触摸屏硬件知识体系总览

下面这张图把本章的核心内容串起来了。你想想看,从触摸屏类型到接口协议,再到芯片选型,每一步都影响最终的产品质量。

触摸屏硬件知识体系 触摸屏硬件体系 触摸屏类型 接口协议 控制器芯片 电阻屏 电容屏 I2C SPI FT5x06 GT911 单点/多点触控 速度/线数/地址 接口/温度/驱动 选型 = 类型 + 协议 + 芯片 + 环境参数

嗯,到这里触摸屏的硬件基础就讲完了。记住一句话:硬件选型决定了驱动开发的难度。选对了,后面Qt适配就是水到渠成的事。选错了,调试能让你怀疑人生。