首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • M4-R1

    • 简介

      • M4-R1简介
    • 快速上手

      • OpenHarmony概述
      • 镜像烧录
      • 开发环境准备
      • Hello World应用以及部署
    • 应用开发

      • 入门

        • 第一章 ArkTS语言简介
        • 第二章 UI组件介绍和实际应用(上)
        • 第三章 UI组件介绍和实际应用(中)
        • 第四章 UI组件介绍和实际应用(下)
      • 进阶

        • 第一章 入门指引
        • 第二章 三方库的引用和使用
        • 第三章 应用编译以及部署
        • 第四章 命令行恢复出厂设置
        • 第五章 系统调试--HDC调试
        • 第六章 APP 稳定性测试
        • 第七章 应用测试
    • 设备开发

      • 第一章 环境搭建
      • 第二章 下载源码
      • 第三章 编译源码
    • 外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
      • 树莓派拓展板
    • 常见问题

      • 资源下载
  • M5-R1

    • 简介

      • ShimetaPi M5-R1简介

触摸

1. I2C触摸

以M4-R1为例,该板卡目前拥有一组I2C接口的触摸接口,目前该接口适配的触摸驱动为gt9xx,该驱动为HDF框架下的驱动,驱动文件位于该路径:

  • drivers/hdf_core/framework/model/input/driver/touchscreen/touch_gt911.c

想了解更多关于HDF驱动框架可以参考该文章: https://blog.csdn.net/wobuzai11/article/details/135959347

接口位置如图:

TOOL

2. USB触摸

鸿蒙系统也支持USB触摸,当接入USB触摸时日志中会有以下打印:

    [ 1483.298817] usb 5-1: new full-speed USB device number 3 using xhci-hcd
    [ 1483.440164] usb 5-1: New USB device found, idVendor=10c4, idProduct=5e52, bcdDevice= 2.00
    [ 1483.440199] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1483.440207] usb 5-1: Product: TOUCH Devices
    [ 1483.440214] usb 5-1: Manufacturer: TOUCH FREE
    [ 1483.440220] usb 5-1: SerialNumber: MTD3210
    [ 1483.458133] input: TOUCH FREE  TOUCH Devices as /devices/platform/usbhost/fd000000.dwc3/xhci-hcd.4.auto/usb5/5-1/5-1:1.0/0003:10C4:5E52.0002/input/input8
    [ 1483.461402] hid-multitouch 0003:10C4:5E52.0002: input,hiddev96,hidraw1: USB HID v1.10 Device [TOUCH FREE  TOUCH Devices] on usb-xhci-hcd.4.auto-1/input0

3. 触摸调试

触摸屏属于input输入子系统设备,input子系统是Linux对输入设备提供的统一驱动框架。 如按键、键盘、触摸屏和鼠标等输入设备的驱动方式是类似的, 使用input子系统驱动的输入设备可以通过统一的数据结构提交给内核, 该数据结构包括输入的时间、类型、代号以及具体的键值或坐标, 内核通过/dev/input目录下的文件接口传递给用户空间。

input输入子设备系统可以通过getevent命令来获取设备上报给系统的事件

板卡中内置了 getevent命令,可以用该命令来调试触摸屏是否正常工作

    # getevent 获取所有input子设备,并监听所有设备上报事件
    ~# getevent
    add device 1: /dev/input/event7
    name:     "TOUCH FREE  TOUCH Devices"    # USB触摸
    add device 2: /dev/input/event6
    name:     "VSoC touchscreen"             # I2C触摸
    add device 3: /dev/input/event1
    name:     "fe6e0030.pwm"
    add device 4: /dev/input/event4
    name:     "Logitech USB Optical Mouse"
    add device 5: /dev/input/event3
    name:     "adc-keys"
    add device 6: /dev/input/event5
    name:     "rk-headset"
    add device 7: /dev/input/event0
    name:     "hdmi_cec_key"
    add device 8: /dev/input/event2
    name:     "rk805 pwrkey"
    # event6(触摸)上报
    /dev/input/event6: 0003 0036 000003a8
    /dev/input/event6: 0003 0039 00000000
    /dev/input/event6: 0000 0002 00000000
    /dev/input/event6: 0001 014a 00000001
    ......

    # getevent -l /dev/input/event* 监听子设备上报的事件类型
    ~# getevent -l /dev/input/event6
    EV_ABS       ABS_MT_POSITION_X    0000014c
    EV_ABS       ABS_MT_POSITION_Y    000002b8
    EV_ABS       ABS_MT_TRACKING_ID   00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_KEY       BTN_TOUCH            DOWN      #   手指按下
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_ABS       ABS_MT_POSITION_X    0000014c  #   X坐标
    EV_ABS       ABS_MT_POSITION_Y    000002b8  #   Y坐标
    EV_ABS       ABS_MT_TRACKING_ID   00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_ABS       ABS_MT_POSITION_X    0000014c
    EV_ABS       ABS_MT_POSITION_Y    000002b8
    EV_ABS       ABS_MT_TRACKING_ID   00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_ABS       ABS_MT_POSITION_X    0000014c
    EV_ABS       ABS_MT_POSITION_Y    000002b8
    EV_ABS       ABS_MT_TRACKING_ID   00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_KEY       BTN_TOUCH            UP        #   手指抬起
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000
    EV_SYN       SYN_MT_REPORT        00000000
    EV_SYN       SYN_REPORT           00000000

在 GitHub 上编辑此页
上次更新:
贡献者: hychen
Prev
屏幕
Next
音频