T527 Qt 触摸 ----- TSLIB

一、调试

1、驱动路径

bsp/drivers/input/ctp/gt9xx/gt9xx_ts.c

2、硬件接口

挂载在TWI0下

3、中断复位脚

4、设备树

&twi0 {
        clock-frequency = <400000>;
        pinctrl-0 = <&twi0_pins_default>;
        pinctrl-1 = <&twi0_pins_sleep>;
        pinctrl-names = "default", "sleep";
        /* For stability and backwards compatibility, we recommend setting ‘twi_drv_used’ to 1 */
        twi_drv_used = <1>;
        twi-supply = <&reg_dcdc4>;
        status = "okay";
        
          gt9xx {
                compatible = "goodix,gt9xx";
                reg = <0x5d>;
                status = "okay";
                irq-gpios = <&pio PD 20 GPIO_ACTIVE_LOW>;
                irq-flags = <2>;
                reset-gpios = <&pio PD 21 GPIO_ACTIVE_LOW>;
                vdd_ana-supply = <&reg_dcdc4>;
                
                touchscreen-max-id = <11>;
                touchscreen-size-x = <1280>;
                touchscreen-size-y = <800>;
                touchscreen-max-w = <512>;
                touchscreen-max-p = <512>;
                //touchscreen-key-map = <172>, <158>; /*KEY_HOMEPAGE=172, KEY_BACK=158,KEY_MENU=139*/
                goodix,slide-wakeup = <0>;
                goodix,type-a-report = <1>;
                goodix,driver-send-cfg = <0>;
                goodix,send-cfg-id = <0>;
                goodix,resume-in-workqueue = <0>;
                goodix,int-sync = <1>;
                goodix,revert_x = <0>;
                goodix,revert_y = <0>;
                goodix,swap-x2y = <0>;
                goodix,tp_idle_support = <1>;
                goodix,esd-protect = <1>;
                goodix,auto-update-cfg = <0>;
                goodix,power-off-sleep = <1>;
                goodix,pen-suppress-finger = <0>;
                /* GT9271_Config_20221222_v67.cfg*/
                goodix,cfg-group0 = [
                        B4 00 05 20 03 0A 3D 00 01 0A
                        28 0F 50 32 03 05 00 00 00 00
                        00 00 06 17 19 1F 14 8E 2E 99
                        2D 2F 35 11 00 00 00 1A 03 10
                        00 00 00 00 00 00 00 00 00 00
                        00 32 50 94 D5 02 07 00 00 04
                        8E 48 00 8A 4D 00 86 53 00 83
                        59 00 80 60 00 80 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 00 01 04 05 06 07 08 09
                        0C 0D 0E 0F 10 11 14 15 16 17
                        FF FF FF FF FF FF FF FF FF FF
                        FF FF 28 27 26 25 24 23 22 21
                        20 1F 1E 1C 1B 19 13 12 11 10
                        0F 0D 0C 0A 08 07 06 04 02 00
                        FF FF FF FF FF FF FF FF FF FF
                        FF FF FF FF AB 01
                ];
        };
};

5、buildroot 构建

项目根路径执行./build.sh buildroot_menuconfig,选择tslib相关配置:

问题1:编译烧录无tslib插件,厂家的opengl库被qt覆盖的问题的。

makefile 修改后编译无法执行,需要删除out目录下,才会重新执行。

rm -rf out/t527/demo_linux_car/buildroot/buildroot/build/gpu_um_pub/

发现: qtbase 也会编译 eglfs, 导致覆盖了了厂家库, 需要执行上面的操作,让最后生成的厂家库覆盖qt编译的opengl。

二、验证测试

1、驱动

烧录后加载了对应驱动

2、系统指令 hexdump 测试

hexdump /dev/input/event3可以读取触摸/dev/input/eventX设备的原始数据,确认驱动可以上报数据。

3、读取事件

cat /dev/input/event3

4、文件系统存在 tslib 插件库。

存在

5、文件系统配置 Qt 插件路径和tslib 环境变量。

env查看环境变量,更改自己的配置

(rootfs修改:buildroot/package/auto/rootfs/etc/profile.d/qtenv.sh)

缺少tslib的库文件,触摸无反应,移植现有的tslib的库文件到buildroot/package/auto/rootfs/usr/lib目录下(需要库文件可联系我)

修改环境变量:

6、Qt GUI验证

Qt显示旋转方向和触摸旋转方向不一致

在buildroot/package/auto/rootfs/etc/profile.d/qtenv.sh中修改:

修改后应用启动后验证触摸和显示一一映射,准确且正确映射。 

7、触摸不准

之前用ts_calibrate校准过,电容屏不需要校准,删除校准文件pointercal

路径:export TSLIB_CALIBFILE=/etc/pointercal

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/528774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 定时任务实践、定时任务按指定时间执行

Q1. springboot怎样创建定时任务&#xff1f; 很显然&#xff0c;人人都知道&#xff0c;Scheduled(cron ".....") Q2. 如上所示创建了定时任务却未能执行是为什么&#xff1f; 如果你的cron确定没写错的话 cron表达式是否合法&#xff0c;可参考此处&#xff0c…

MAC苹果电脑如何使用Homebrew安装iperf3

一、打开mac终端 找到这个终端打开 二、终端输入安装Homebrew命令 Homebrew官网地址&#xff1a;https://brew.sh/ 复制这个命令粘贴到mac的终端窗口&#xff0c;然后按回车键 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/in…

ModuleNotFoundError: No module named ‘ultralytics.utils‘

项目场景he 问题描述 提示&#xff1a;这里简述项目相关背景&#xff1a; model YOLO(modelr./yolov8m-cls.pt) 加载预训练模型时报错。 ModuleNotFoundError: No module named ultralytics.utils warning: bug: 原因分析&#xff1a; 很可能是提前下载的预训练模型出了…

川川本人著作《Python3编程从零基础到实战》

在数字时代&#xff0c;Python已经成为了一种极为强大和灵活的编程语言&#xff0c;它的应用范围从网站开发到数据科学&#xff0c;再到机器学习和人工智能。无论你是一名编程新手还是希望深化已有技能的开发者&#xff0c;《Python3编程从零基础到实战》将成为你通往Python世界…

css面试题---场景应用

1、实现一个三角形 css一般用border属性实现三角形。 div {width: 0;height: 0;border: 100px solid;border-color: orange blue red green; } // 三角形一 div {width: 0;height: 0;border-top: 50px solid red;border-right: 50px solid transparent;border-left: 50px soli…

SAP HCM 0000与0001信息类型不一致导致 DUMP解决方案

今天遇到一个很奇怪的问题&#xff0c;就是执行PA20与工资核算的时候&#xff0c;系统down掉&#xff0c;不知道什么问题&#xff0c;后来想想遇到这样标准程序界面down掉&#xff0c;无非就是数据问题&#xff0c;增强问题。所以就需要向这个方向靠&#xff0c;HCM核心的信息类…

线性、逻辑回归算法学习

1、什么是一元线性回归 线性&#xff1a;两个变量之间的关系是一次函数&#xff0c;也是数据与数据之间的关系。 回归&#xff1a;人们在测试事物的时候因为客观条件所限&#xff0c;求的都是测试值&#xff0c;而不是真实值&#xff0c;为了无限接近真实值&#xff0c;无限次的…

【自然语言处理八-transformer实现翻译任务-一(输入)】

自然语言处理八-transformer实现翻译任务-一&#xff08;输入&#xff09; transformer架构数据处理部分模型的输入数据(图中inputs outputs outputs_probilities对应的label)以处理英中翻译数据集为例的代码 positional encoding 位置嵌入代码 鉴于transfomer的重要性&#xf…

java——网络编程

什么是计算机网络 把分布在不同地理区域的计算机设备&#xff0c;通过通信设备和线路(网线&#xff0c;光纤&#xff0c;交换机)连接&#xff0c;最终实现数据的传输和资源的共享。 实现不同计算机之间的联系&#xff0c;必须有介质连接 最早的网络&#xff1a;美国五角大楼一…

Go语言不能常量取址!?

题如下图 在软件开发中&#xff0c;常量是一种重要的编程元素&#xff0c;它们在程序中起到固定值的作用被大量使用 Go语言中的常量取址 在 Go 语言中&#xff0c;常量是无法被取址的。这意味着我们不能使用取址操作符 & 来获取常量的地址。例如&#xff1a; const a …

WinRAR功能之【锁定压缩文件】

今天来分享一下WinRAR解压缩软件的“锁定压缩文件”功能&#xff0c;这个功能可以保护压缩包里文件的完整性&#xff0c;也就是不能随意增加、删除以及修改压缩包里的文件。我们可以用两种方式来设置&#xff0c;一起来看看吧&#xff01; 方式1&#xff1a;在压缩文件的时候&a…

Gretel引领革命:发布全球最大开源Text-to-SQL数据集,开启AI培训新篇章|TodayAI

在合成数据行业中处于领先地位的Gretel公司&#xff0c;近日宣布了一项重大突破&#xff0c;推出了世界上最大的开源Text-to-SQL数据集&#xff0c;这一举措将加速AI模型的培训过程&#xff0c;并为全球各行各业的企业解锁新的可能性。 这个数据集包含了超过100,000个精心制作…

msvcp140.dll文件丢失能有什么办法可以解决,提供几种解决办法

哦豁&#xff01;当您打开计算机或想要启动某个应用程序时&#xff0c;意外地弹出一个令人不安的错误提示&#xff1a;“msvcp140.dll文件不见啦&#xff01;”这意味着您的操作系统找不到名为“msvcp140.dll”的重要文件&#xff0c;可能导致一些应用程序无法正常运行。但是别…

集合类多线程(JUC)

一、集合框架概述 集合&#xff1a; 是广义上的集合&#xff0c;简单理解就是容器。注意&#xff1a;集合只能存放对象类型的数据。 集合框架&#xff1a; 指的是 java.util 包中定义的各种容器类、相关的工具类、接口的统称。不同的容器存储不同结 构的数据。使用时要进行导包…

智慧园区水电能源监控管理系统

随着智慧城市的快速发展&#xff0c;智慧园区作为城市智能化的重要组成部分&#xff0c;其能源监控管理系统显得尤为关键。智慧园区水电能源监控管理系统&#xff0c;是利用先进的信息技术和自动控制技术&#xff0c;对园区内的水电能源使用进行实时监控、管理和优化的综合性智…

React 开发者必备技能之Redux基础入门实例

首先,我们需要安装 Redux 及其相关依赖: npm install redux react-reduxredux 是 Redux 库的核心部分,提供了创建 Store、Reducer、Action 等功能。react-redux 是 React 和 Redux 的集成库,用于在 React 组件中使用 Redux。 安装完成后,我们开始创建 Redux 应用程序: 创建 …

HarmonyOS 应用开发-应用异常处理案例

介绍 本示例介绍了通过应用事件打点hiAppEvent获取上一次应用异常信息的方法&#xff0c;主要分为应用崩溃、应用卡死以及系统查杀三种。 效果图预览 使用说明&#xff1a; 点击构建应用崩溃事件&#xff0c;3s之后应用退出&#xff0c;然后打开应用进入应用异常页面&#x…

分享|创业老阳推荐的Temu蓝海项目到底怎么样?

在当今竞争激烈的创业市场中&#xff0c;寻找一个具有潜力的蓝海项目成为了众多创业者的梦想。近日&#xff0c;创业老阳推荐的Temu蓝海项目引起了广泛关注。那么&#xff0c;这个项目到底怎么样呢?让我们一起来探讨一下。 首先&#xff0c;Temu蓝海项目在定位上具有显著优势 …

【数组】【最长距离】使循环数组所有元素相等的最少秒数

本文涉及知识点 数组 最长距离 LeetCode2808. 使循环数组所有元素相等的最少秒数 给你一个下标从 0 开始长度为 n 的数组 nums 。 每一秒&#xff0c;你可以对数组执行以下操作&#xff1a; 对于范围在 [0, n - 1] 内的每一个下标 i &#xff0c;将 nums[i] 替换成 nums[i] …

吴恩达深度学习 (week1,2)

文章目录 1、神经网络监督学习2、深度学习兴起原因3、深度学习二元分类4、深度学习Logistic 回归5、Logistic 回归损失函数6、深度学习梯度下降法7、深度学习向量法8、Python 中的广播9、上述学习总结10、大作业实现:rocket::rocket:&#xff08;1&#xff09;训练初始数据&…