HOME
  • 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
Shop
  • English
  • 简体中文
HOME
  • 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
Shop
  • English
  • 简体中文
  • SC-3568HA

    • Introduction

      • SC-3568HA Overview
    • Quick Start Guide

      • OpenHarmony Overview
      • Image Flashing
      • Setting Up the Development Environment
      • Hello World Application and Deployment
    • Application Development

      • ArkUI

        • Chapter 1 Introduction to ArkTS Language
        • Chapter 2 Introduction to UI Components and Practical Applications (Part 1)
        • Chapter 3 Introduction to UI Components and Practical Applications (Part 2)
        • Chapter 4 Introduction to UI Components and Practical Applications (Part 3)
      • Expand

        • Chapter 1 Getting Started Guide
        • Chapter 2 Referencing and Using Third-Party Libraries
        • Chapter 3: Application Compilation and Deployment
        • Chapter 4: Command-Line Factory Reset
        • Chapter 5: System Debugging -- HDC (Huawei Device Connector) Debugging
        • Chapter 6 APP Stability Testing
        • Chapter 7 Application Testing
    • Device Development

      • Chapter 1 Environment Setup
      • Chapter 2 Download Source Code
      • Chapter 3 Compiling Source Code
    • Peripheral And Iinterface

      • Raspberry Pi interface
      • GPIO Interface
      • I2C Interface
      • SPI communication
      • PWM (Pulse Width Modulation) control
      • Serial port communication
      • TF Card
      • Display Screen
      • Touch
      • Audio
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
      • Raspberry Pi expansion board
    • Frequently Asked Questions

      • Resource Downloads
  • M-K1HSE

    • Introduction

      • M-K1HSE Introduction
    • Quick Start

      • Development environment construction
      • Source code acquisition
      • Compilation Notes
      • Burning Guide
    • Peripherals and interfaces

      • 01 Audio
      • 02 RS485
      • 03 Display
    • System customization development

      • System transplant
      • System customization
      • Driver Development
      • System Debugging
      • OTA Update

Touch

1. I2C touch

Take SC-3568HA as an example. The board currently has a set of I2C touch interfaces. The touch driver currently adapted to this interface is gt9xx. This driver is a driver under the HDF framework. The driver file is located in this path:

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

To learn more about the HDF driver framework, please refer to this article: https://blog.csdn.net/wobuzai11/article/details/135959347

The interface location is as shown in the figure:

TOOL

2. USB touch

HarmonyOS also supports USB touch. When USB touch is connected, the following will be printed in the log:

    [ 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. Touch debugging

The touch screen belongs to the input subsystem device. The input subsystem is a unified driver framework provided by Linux for input devices. The driver methods of input devices such as keys, keyboards, touch screens and mice are similar. Input devices driven by the input subsystem can be submitted to the kernel through a unified data structure. The data structure includes the input time, type, code, and specific key value or coordinates. The kernel passes it to the user space through the file interface in the /dev/input directory.

The input sub-device system can obtain the events reported by the device to the system through the getevent command

The board has a built-in getevent command, which can be used to debug whether the touch screen is working properly.

    # 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

Edit this page on GitHub
Last Updated:
Contributors: zsl, zwhuang
Prev
Display Screen
Next
Audio