Gt911 Register Map — [2021]
After writing a new configuration block to 0x8040 – 0x80FD , you must:
: After reading, write 0 back to 0x814E to tell the controller you have finished processing that frame. Best Practices
This is the most frequently accessed area. The register at 0x814E acts as a traffic controller; its "Buffer Status" bit signals to the CPU when new touch data is ready. Following this, a series of coordinates (X/Y) and track IDs for up to five simultaneous touch points are stored in sequential memory locations. 2. The Protocol of Interaction gt911 register map
Accessing this map via I²C is the key to configuration, calibration, and raw data acquisition. This article provides an exhaustive deep dive into the GT911 register map, from basic addressing to advanced gesture recognition.
typedef struct uint8_t track_id; uint16_t x; uint16_t y; uint16_t size; gt911_touch_t; After writing a new configuration block to 0x8040
: The gatekeeper. You must read this first to see if a touch is even happening before you waste time reading coordinates.
The register map is organized into functional blocks ranging from real-time commands to coordinate data reporting. Register Range Description Access Type Command and Status Read/Write (R/W) 0x8047 – 0x80FF Configuration Data Read/Write (R/W) 0x8100 – 0x813F Coordinate Data Read-Only (R) 0x8140 – 0x814E Product ID and Information Read-Only (R) Key Register Descriptions 1. Command Register (0x8040) Following this, a series of coordinates (X/Y) and
int gt911_read_touches(gt911_touch_t *touches, int max_touches) uint8_t status = i2c_read_u8(GT911_ADDR, GT911_STATUS);
