| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- --[[
- @module tp_drv
- @summary 触摸面板驱动模块,基于tp核心库
- @version 1.0
- @date 2026.02.05
- @author 江访
- @usage
- 本模块为触摸面板驱动功能模块,主要功能包括:
- 1、初始化GT911触摸控制器;
- 2、配置I2C通信接口和触摸回调函数;
- 3、发布触摸事件消息供UI系统处理;
- 对外接口:
- 1、tp_drv.init():初始化触摸面板驱动
- ]]
- local tp_drv = {}
- --[[
- 初始化触摸面板驱动;
- @api tp_drv.init()
- @summary 配置并初始化GT911触摸控制器
- @return boolean 初始化成功返回true,失败返回false
- @usage
- -- 初始化触摸面板
- local result = tp_drv.init()
- if result then
- log.info("触摸面板初始化成功")
- else
- log.error("触摸面板初始化失败")
- end
- ]]
- local function tp_callback(tp_device, tp_data)
- log.info("tp_drv tp_callback", tp_data[1].event, tp_data[1].x, tp_data[1].y)
- --sys.publish("TP", tp_device, tp_data)
- end
- function tp_drv.init()
- -- 开机I2C供电,触摸、摄像头和音频都是使用I2C0
- -- gpio.setup(147, 1)
- -- gpio.setup(164, 1)
- -- 等待供电稳定
- sys.wait(100)
- -- 初始化硬件I2C
- i2c.setup(0, i2c.SLOW) -- 初始化I2C 0,设置为低速模式
- -- 此处触摸IC数据读取使用的是软件I2C接口
- -- 参数说明:
- -- "gt911": 触摸控制器型号
- -- port: I2C接口对象
- -- pin_rst: 复位引脚编号
- -- pin_int: 中断引脚编号
- -- w: 触摸面板宽度
- -- h: 触摸面板高度
- local result = tp.init("gt911", { port = 0, pin_rst = 0xff, pin_int = 21},tp_callback)
- log.info("tp.init", result)
- if not result then
- log.error("ui_main", "触摸初始化失败")
- return result
- else
- -- 绑定触摸设备到AirUI输入设备
- return airui.indev_bind_touch(result)
- end
- end
- return tp_drv
|