完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在 menuconfig 或者 rockchip_defconfig 中支持触摸屏。具体用哪种方式需要结合编译方法。
按照瑞芯微提供的编译方式,则修改 rockchip_defconfig,这种方式在make前,需要执行make rockchip_defconfig,生成 .config 文件。 path:kernel/arch/arm/configs/rockchip_defconfig CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_GT9XX=y 只执行make的话,就要在make menuconfig中修改,保存后生成 .config 文件。 DeviceDrivers ---> Input device support --->
|
|
|
|
修改触摸屏分辨率。
path:kernel/drivers/input/touchscreen/gt9xx/gt9xx.h // 下面有两种定义分辨率的方式,任选一种 #define GTP_CUSTOM_CFG 1 ... ... #define GTP_1024X768 ... ... #if GTP_CUSTOM_CFG #ifdef GTP_1024X768 #define GTP_MAX_HEIGHT 768 #define GTP_MAX_WIDTH 1024 #else #define GTP_MAX_HEIGHT 320 #define GTP_MAX_WIDTH 480 #endif // 触摸屏中断触发信号 #define GTP_INT_TRIGGER 0 // 0: Rising 1:Falling #else #defineGTP_MAX_HEIGHT 4096 #defineGTP_MAX_WIDTH 4096 #defineGTP_INT_TRIGGER 1 #endif |
|
|
|
确认触摸屏Sensor-ID,有下面两种方式
(1)根据硬件配置,需要咨询供应商。 //***************************PART2:TODO define ********************************** //STEP_1(REQUIRED): Define Configuration Information Group(s) // Sensor_ID Map: /* sensor_opt1sensor_opt2 Sensor_ID GND GND 0 VDDIO GND 1 NC GND 2 GND NC/300K 3 VDDIO NC/300K 4 NC NC/300K 5 */ (2)内核运行时的log可以看出来 // 获取 sensor_id ret =gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); if (SUCCESS == ret) // 获取 sensor_id 成功 { // sensor_id 超出范围 if (sensor_id >= 0x06) { GTP_ERROR("Invalid sensor_id(0x%02X), No ConfigSent!", sensor_id); ts->pnl_init_error = 1; return -1; } } else // 获取 sensor_id 失败 { GTP_ERROR("FAIled to get sensor_id, No configsent!"); ts->pnl_init_error = 1; return -1; } // 成功后打印 sensor_id GTP_INFO("Sensor_ID: %d", sensor_id); |
|
|
|
在dts文件中,修改触摸屏的硬件参数。
// i2c接口 &i2c4 { // 使能 status = "okay"; // 设备地址(记得除二) ts@5d{ compatible = "goodix,gt9xx"; reg = <0x5d>; // 复位IO goodix,rst-gpio = <&gpio7GPIO_B2 GPIO_ACTIVE_HIGH>; // 中断IO goodix,irq-gpio = <&gpio7GPIO_B1 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; // 中断IO默认上拉 pinctrl-0 = <&gpio7_b1>; // 触摸屏配置参数,需要供应商提供,group0-group5,根据Sensor-ID决定,若ID=4,则使用goodix,cfg-group4 goodix,cfg-group0 = [ 63 40 01 E0 01 05 35 00 01 08 28 05 50 32 03 05 00 00 00 00 00 00 00 14 16 18 10 8C 20 08 17 15 31 0D 00 00 02 9A 04 24 00 00 00 00 00 03 64 32 00 00 00 0F 94 94 45 02 07 00 00 04 8D 13 00 5C 1E 00 3C 30 00 28 4C 00 1D 78 00 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 04 06 08 0A 0C 0E 10 FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 04 06 08 0A 0C 0F 10 12 13 14 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 01]; }; }; 此时已配置完毕 若出现触摸方向x、y反了,可以联系供应商改配置文件,也可以在头文件中打开交换x、y坐标的宏 宏生效后,会在触摸按下的函数 gtp_touch_down 中,交换x、y坐标 #define GTP_CHANGE_X2Y 1 //swap x y #if GTP_CHANGE_X2Y GTP_SWAP(x, y); #endif 若出现触摸方向x、y镜像了,可以联系供应商改配置文件,也可以在触摸按下的函数 gtp_touch_down 中,修改x、y坐标 // abs_x_maxabs_y_max 分别是x y方向的最大值 // x 方向镜像 x =ts->abs_x_max - x; // y 方向镜像 y =ts->abs_y_max - y; 若出现触摸不准,,触摸跳点等问题,则需要联系供应商查看硬件或者修改配置参数。 |
|
|
|
只有小组成员才能发言,加入小组>>
【爱芯派 Pro 开发板试用体验】人体姿态估计模型部署后期尝试
1667 浏览 0 评论
1158 浏览 0 评论
【爱芯派 Pro 开发板试用体验】人体姿态估计模型部署后期尝试
1204 浏览 0 评论
【爱芯派 Pro 开发板试用体验】在爱芯派 Pro上部署坐姿检测
1211 浏览 0 评论
【爱芯派 Pro 开发板试用体验】利用爱芯派 Pro部署USB摄像头
1368 浏览 0 评论
【爱芯派 Pro 开发板试用体验】爱芯元智AX650N部署yolov5s 自定义模型
839浏览 1评论
1863浏览 1评论
【爱芯派 Pro 开发板试用体验】+ 利用TF卡进行系统更新
1504浏览 1评论
1464浏览 1评论
769浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 12:22 , Processed in 0.615187 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号