📖 第 31 章:触摸屏实验(Touch Screen)

🔧 正点原子《DMF407 开发指南》V1.0 · Chapter 31
🗨️ 「点哪动哪:触摸屏让 MCU 看见你的手指。」
这一章在干嘛? 触摸屏实验:电阻屏 ADP 坐标采集、电容屏 FT/GT 系列多点触摸、坐标校准与转换。从此 LCD + Touch 一体化交互。
31.1 触摸屏简介31.2 硬件设计31.3 程序设计31.4 下载验证

31.1 触摸屏简介

类型原理特点
电阻屏ITO 上下两层接触支持手写笔,单点
电容屏ITO + 人体电容耦合支持多点(最多 10 点)

DMF407 配 ATK-4.3 寸电容屏(FT5206/GT9147),通过 I2C 通信。

原书图 31.1.1:电容屏结构
原书图 31.1.1:电容屏结构

电容屏工作流程:

  1. MCU 通过 I2C 读触摸 IC 状态寄存器;
  2. INT 引脚产生下降沿通知有新触摸;
  3. 读触摸点坐标 (x, y);
  4. 计算对应 LCD 像素坐标(考虑扫描方向)。

原书图 31.1.2:触摸 IC 与 MCU 连接
原书图 31.1.2:触摸 IC 与 MCU 连接

31.2 硬件设计

31.3 程序设计

31.3.1 I2C 通信

31.3.2 关键代码

void tp_init(void) {
    GT9147_Init();      // 复位 → 配置 → 中断
    HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
}

void EXTI9_5_IRQHandler(void) {
    if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_7) != RESET) {
        tp_scan();      // 读坐标
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_7);
    }
}

原书图 31.3.2.1:触摸 IC 初始化与读坐标流程
原书图 31.3.2.1:触摸 IC 初始化与读坐标流程

31.3.3 坐标校准

触摸 IC 坐标和 LCD 像素坐标范围不同,需要校准(线性变换):

x_lcd = x_tp * A + B;
y_lcd = y_tp * C + D;

四个校准点(左上、右上、左下、右下)算出 4 个系数。

31.4 下载验证

触摸屏幕不同位置 → 串口打印坐标;画板应用:用手指在屏幕上画画。

多点触摸:FT5206/GT9147 支持最多 5/10 个触点,可在画板应用中实现多指绘画。

🧠 小测验
电容屏通过什么与 IC 通信?
I2C。
触摸中断是什么触发方式?
下降沿触发(INT 引脚拉低)。
为什么需要坐标校准?
触摸 IC 坐标范围和 LCD 像素范围不一致,需要线性变换。
← 上一篇🏠 顶层目录下一篇 →