
USB电容触摸屏驱动板
简介
将电容触摸屏转为USB接口,即插即用,支持Windows、Linux、Android系统。
简介:将电容触摸屏转为USB接口,即插即用,支持Windows、Linux、Android系统。开源协议
:GPL 3.0
描述
U2HTS
U2HTS代表"USB to HID Touchscreen"。


部分内容复制自README_zh.md。
由于项目仍在积极开发中,若以下描述与README_zh.md中有不同之处,以后者为准
特性
- 支持多点触摸(最大10点)
- 支持I2C与SPI总线
- 支持检测控制器
- 支持配置触摸屏方向
- 支持读取控制器参数
- 支持按键动态切换配置
- 支持LED灯指示系统状态
- 支持持久化保存配置
触摸控制器仓库
配置
内置4个配置:
| 配置 | X轴反转 | Y轴反转 | XY轴交换 |
|---|---|---|---|
| 1 | N | N | N |
| 2 | Y | N | Y |
| 3 | Y | Y | N |
| 4 | N | Y | Y |
LED 闪烁解码
如果LED出现规律性闪烁,且主机未识别到设备,则代表出现错误。
| 闪烁次数 | 错误 |
|---|---|
| 1 | 未检测到I2C从机 |
| 2 | 控制器不兼容 |
| 3 | 未配置必要的参数 |
| 4 | 控制器初始化失败 |
| 5 | 控制器配置无效 |
如果处于配置模式下,LED会常亮。按下一次按键LED会闪烁n次,代表切换到第n个配置。
按键
进入配置模式: 长按1秒
切换配置: 短按
在一段时间(~5秒)内无操作则应用新配置(如开启U2HTS_ENABLE_PERSISTENT_CONFIG则还会写入配置到flash中)。
配置
| 配置 | 变量名 | 可选值 |
|---|---|---|
| 控制器名 | controller | 参考触摸控制器一节 |
| 总线类型 | bus_type | 参考u2hts_core.h, 默认为UB_I2C |
| 反转X轴 | x_invert | 0/1 |
| 反转Y轴 | y_invert | 0/1 |
| X轴偏移量 | x_offset | -32768-32767 |
| Y轴偏移量 | y_offset | -32768-32767 |
| 交换XY轴 | x_y_swap | 0/1 |
| 轮询模式 | polling_mode | 0/1 |
| 回报延时 | report_delay | uint32_t, 默认为0 |
| 中断触发类型 | irq_type | 参考u2hts_core.h |
| 自定义控制器配置 | custom_controller_config | 字符串, 默认最大512字节 |
如果控制器不支持读取配置,则必须配置以下参数:
| 配置 | 变量名 | 可选值 |
|---|---|---|
| 最大触摸点数 | max_tps | 最大为10 |
| X轴最大值 | x_max | 65535 |
| Y轴最大值 | y_max | 65535 |
通常控制器驱动会设置总线的默认参数,也可以将其覆盖(注意:如启用覆盖则对应总线所有配置项均需要配置):
| 配置 | 变量名 | 可选值 |
|---|---|---|
| 覆盖I2C配置 | override_i2c_config | 0/1 |
| I2C从机地址 | primary_i2c_addr | 7位地址 |
| I2C速度 | i2c_speed | uint32_t |
| 覆盖SPI配置 | override_spi_config | 0/1 |
| SPI速度 | spi_speed | uint32_t |
| SPI CPHA | spi_cpha | 0/1 |
| SPI CPOL | spi_cpol | 0/1 |
自定义控制器配置
如果控制器需要一些额外参数进行配置,可以将配置以键值对的方式写入到custom_controller_config中,再在控制器驱动中获取该配置项。
配置格式为xxx.yyy=zzz,多个配置项使用空格分开,如aaa.bbb=ccc foo.bar=yum。
在u2hts_core.h处定义了custom_controller_config的最大长度和最大键长度。
查看dummy_test.c来获取实际使用案例。
MCU
| 厂商 | 型号 | 备注 | 源码 |
|---|---|---|---|
| RPi | RP2040/RP2350 | 支持最好,价格较贵 | U2HTS |
| STM | STM32F070F8P6 | 内存小,外围元件较多 | U2HTS_F070F6 |
| WCH | CH32X033F8P6 | 价格低、易焊接、内存容量适中 | 仅提供固件,见附件 |
| WCH | CH32V003J4M6 | 体积小,价格低,内存小,GPIO模拟USB(Low Speed),需WCHLinkE下载,回报率低 | U2HTS_V003J4 |
触摸控制器
| 厂商 | 系列 | 测试 | 备注 |
|---|---|---|---|
| 汇顶 | GT9xx | GT9271, GT615, GT5688 | 开源 |
| 敦泰 | FT54X6 | FT5406, FT3168 | 开源 |
| 新思 | RMI F11 | S7300B | 开源 |
| 汇顶 | Normandy | GT9886 | 开源 |
| 基合半导体 | CHSC6540 | CHSC6540 | 开源 |
| 海栎创 | CST8xx | cst816d | 开源 |
| 新思 | RMI F12 | S7501B, S3351B, S5710B | 定制 |
| 通用 | HID I2C | NT56810 | 定制 |
如何自行编写驱动:U2HTS触摸屏驱动编写实践
如需定制,可前往闲鱼链接: 链接直达
协议
本项目硬件基于GPL V3协议进行开源。
本项目允许商用,但不提供任何保证与责任声明(WARRANTY AND LIABILITY)。
X033F8 更新日志
2026-04-30:
- 修复了在部分主机上不能正常识别的问题
- 优化了GT9xx获取坐标的逻辑
- 为配置工具添加下载功能,更名为下载器(建议使用最新版Chrome浏览器)
2026-04-15: 2026.04.15
- 修改版本号命名规则,使用编译当天的日期作为版本号
- 添加控制器坐标偏移量调整功能
- 修复了控制器配置无法正确保存至flash的问题
- 优化了USB上报坐标的逻辑,提升了回报率
- 更新配置工具
2026-03-11: v0.2.2
- 优化了GT9XX控制器获取控制器参数的逻辑
2026-03-11: v0.2.1
- 修复了控制器配置不生效的问题
2026-03-08: v0.2.0
- 添加CHSC6540支持
- 添加Goodix Normandy支持
- 修复了数个潜在问题
- 添加自定义配置
- 更新配置工具
2025-11-27: v0.1.6
- 更新了LED指示灯显示错误的逻辑
2025-11-13: v0.1.5
- 修复了某些汇顶GT9XX控制器无法正常获取参数的问题
- 修复了某些汇顶GT9XX控制器出现触摸点闪烁的问题
- 更新配置工具
2025-08-04: v0.1.1
- 修复了轮询模式工作不正常的问题
2025-07-16: v0.1.0
- 支持配置运行模式为轮询模式,默认为中断模式
- 添加Synaptics RMI F11和CST8XX支持
- 更新配置工具
2025-07-10: 初始版本
- 添加gt9xx和ft54x6支持
交流群
🐧:1055280109
加群请填写来源。
演示


设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。









