gt911 --- GT911 五点电容式触摸控制器¶
gt911 模块为汇顶(Goodix)GT911 投射式电容触摸屏控制器提供驱动,该控制器常与 4.3 英寸到 7 英寸的 800x480 LCD 面板搭配使用。该控制器最多可跟踪五个同时存在的触摸点,并将每个触摸点报告为一个 (x, y, size, id) 元组,其中只要手指仍停留在面板上,id 在多次读取之间保持稳定。
该驱动通过 I2C 与芯片通信,并使用两个额外的 GPIO:
一条 reset 线,在上电期间保持为低电平,并与 IRQ 线一起切换以选择 GT911 的 7 位 I2C 地址(复位期间 IRQ 为低电平时为
0x5D,IRQ 为高电平时为0x14);一条 interrupt 线,当触摸事件发生时由控制器置位。
构造完成后,应用程序可以使用 GT911.read_points() 轮询触摸,或者提供一个 touch_callback,使其在 IRQ 引脚的下降沿被调用。
class GT911 -- 五点电容式触摸控制器¶
- class gt911.GT911(bus: machine.I2C, reset_pin: int | str, irq_pin: int | str, address: int = _DEFAULT_ADDR, width: int = 800, height: int = 480, touch_points: int = 1, reverse_x: bool = False, reverse_y: bool = False, reverse_axis: bool = True, sito: bool = True, refresh_rate: int = 240, touch_callback: Callable | None = None)¶
创建一个 GT911 触摸屏控制器对象。
bus是 GT911 所连接的machine.I2C总线对象。reset_pin是连接到 GT911 复位线的引脚编号或名称(不是Pin对象)。驱动在复位期间需要改变引脚方向。irq_pin是连接到 GT911 中断线的引脚编号或名称(不是Pin对象)。驱动在复位期间需要改变引脚方向。address是控制器的 I2C 地址。默认为gt911._DEFAULT_ADDR。width是触摸面板沿 X 轴的分辨率,以像素为单位。height是触摸面板沿 Y 轴的分辨率,以像素为单位。touch_points是要报告的最大同时触摸点数量(1 到 5)。reverse_x若为 True,则翻转 X 轴。reverse_y若为 True,则翻转 Y 轴。reverse_axis若为 True,则交换 X 轴和 Y 轴。sito为 True 时启用控制器的单输入触摸输出(Single-Input-Touch-Output)模式。refresh_rate是触摸报告速率,以 Hz 为单位。touch_callback是一个可选的可调用对象,当触摸事件发生时在 IRQ 引脚的下降沿被调用。传入None以使用轮询模式。