RK3568笔记十五:触摸屏测试

若该文为原创文章,转载请注明原文出处。

使用正点原子的ATK-RK3568板子,一直在测试屏幕和视频,突然想到触摸屏测试,一直没有用过,原子给的demo跑的是QT系统,触摸功能是正常的,测试一下,并记录。

一 、环境

1、平台:rk3568

2、开发板: ATK-RK3568正点原子板子

3、环境:buildroot

二、关闭QT系统

打开板子终端,输入ps -x

打到QT的那个PID

这里不能直接使用kill,需要使用bin下的kill,既  在次查看ps,会发现已经被结束了。

三、触摸测试

检查event编号

hexdump /dev/input/event2

经测试我的屏幕是event2,自行测试

按触摸屏会输出信息的就是触摸屏对应文件

0000000 3cb7 5984 0000 0000 f07b 0001 0000 0000
0000010 0003 0039 0000 0000 3cb7 5984 0000 0000
0000020 f07b 0001 0000 0000 0003 0035 01a0 0000
0000030 3cb7 5984 0000 0000 f07b 0001 0000 0000
0000040 0003 0036 0209 0000 3cb7 5984 0000 0000
0000050 f07b 0001 0000 0000 0003 0030 0019 0000
0000060 3cb7 5984 0000 0000 f07b 0001 0000 0000
0000070 0003 0032 0019 0000 3cb7 5984 0000 0000
0000080 f07b 0001 0000 0000 0000 0000 0000 0000
0000090 3cb7 5984 0000 0000 aa61 0003 0000 0000
00000a0 0003 0035 019e 0000 3cb7 5984 0000 0000

四、触摸屏获取坐标

1、触摸屏代码的思路    
    第一步:打开触摸屏的驱动("/dev/input/event2")
    第二步:读取触摸屏的坐标
    第三步:关闭触摸屏
    
2、输入子系统模型

    概念:linux把所有输入类型设备(键盘,鼠标,触摸屏)的驱动统一成了一个模型-->输入子系统模型
    linux为了统一,就搞出了输入子系统模型这个概念,所有的人开发linux上键盘,鼠标,触摸屏的驱动都必须按照输入子系统模型规定好的参数,变量去写代码
    linux提供的跟输入子系统模型有关的头文件
    /usr/include/linux/input.h
    输入子系统模型中的重要结构体   

struct input_event
{type; //表示事件类型  EV_KEY 键盘的驱动   EV_ABS 触摸屏的驱动code; //表示按键的键值,x,y坐标  ABS_X    ABS_Yvalue; //表示坐标值
}

3、测试源码

/*************************************************
*头文件
*************************************************/
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <linux/input.h>#define TS_PATH "/dev/input/event2"int get_input_evnet(void)
{//1.打开触摸屏文件int fd = open(TS_PATH, O_RDWR);if (fd == -1){perror("open failed!");return -1;}//2.读取触摸屏文件数据struct input_event xy;int x, y;	   //存放点击屏幕的横纵坐标int flag = 0;  //记录当前获取坐标的信息while (1){read(fd, &xy, sizeof(xy));printf("type:0x%2x\tcode:0x%2x\tvalue:%d\n",xy.type,xy.code,xy.value);// EV_ABS 0x03 绝对坐标,如触摸屏上报的坐标// type:0x 3       code:0x39       value:0// type:0x 3       code:0x35       value:669// type:0x 3       code:0x36       value:1224if(xy.type == EV_ABS && xy.code == 0x35){x = xy.value;    //获取点击的时候X轴坐标的值 (0~1024)--> (0~800)flag = 1;printf("flag = 1\n");}if(xy.type == EV_ABS && xy.code == 0x36){y = xy.value;	 //获取点击的时候Y轴坐标的值 (0~600)-->(0~480)flag = 2;printf("flag = 2\n");}//设置条件:每读取一次完整的坐标,就打印一次坐标if(flag == 2){printf("(%d,%d)\n", x, y);flag = 0;//break;//获取一次坐标就跳出循环}}//3.关闭触摸屏文件close(fd);return 0;
}int main(void)
{get_input_evnet();return 0;
}

编译

/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-g++ touch_test.cpp -o touch_test

把编译后的可执行文件上传到开发板上运行,输出的坐标基本可以对应得上。

如有侵权,或需要完整代码,请及时联系博主。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Arrays源码剖析

Java中有一个类Arrays,包含一些对数组操作的静态方法&#xff0c;本文主要就来讨论这些方法以避免重新造轮子&#xff0c;在需要的时候自己实现它不具备的功能。 toString Arrays的toString()方法可以方便地输出一个数组的字符串形式&#xff0c;以便查看。它有9个重载的方法…

MySQL的JDBC操作、pymysql操作

JDBC JDBC (Java DataBase Connectivityjava数 据库连接)是一种用于执行SQL语句的Java API。 JDBC是Java访问数据库的标准规范&#xff0c;可以为不同的关系型数据库提供统一访问&#xff0c; 它由一组用Java语言编写的接口和类组成。 JDBC需要连接驱动&#xff0c;驱动是两个设…

学习天机02

1.注入bean的写法 构造函数的注入 2.回答和评论 在做这个功能的时候需要理解一些概念&#xff0c;张三提出问题就是提问者&#xff0c;李四去回答张三的问题&#xff0c;李四就是回答者&#xff0c;王五去回答李四的评论&#xff0c;王五就是评论者。 在提供的InteractionRep…

reprod_log复现精度对比小工具

reprod_log复现精度对比小工具 主要用于对比和记录模型复现过程中的各个步骤精度对齐情况 pip 安装 pip3 install reprod_log --force-reinstall 提供的类和方法 论文复现赛 在论文复现赛中&#xff0c;主要用到的类如下所示。 ReprodLogger 功能&#xff1a;记录和保存…

MySQL免安装版安装教程

官网下载安装包 MySQL :: Download MySQL Community Server (Archived Versions) 选择mysql版本下载 安装配置MySQL 将下载完的Mysql安装包解压到指定目录 打开windos系统的cmd&#xff0c;以管理员身份运行 进入mysql文件夹中的bin目录 安装MySQL的服务mysqld --install 初…

代码随想录刷题第33天

第一题是k次取反后求数组最大和https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/&#xff0c;使用了两次贪心策略&#xff1a;第一次是优先将绝对值大的负数进行取反&#xff0c;若负数取完后&#xff0c;取反次数仍有剩余&#xff0c;则将…

幻兽帕鲁游戏联机的时候,显示“网络连接超时”怎么解决?

如果你在游戏联机的时候&#xff0c;显示“网络连接超时”&#xff0c;可以检查下&#xff1a; 1、前提是你已经按照教程部署成功 2、检查防火墙有没有忘记设置&#xff0c;协议是UDP&#xff08;只有TCP不行&#xff0c;一定要有UDP&#xff09;&#xff0c;端口是否填了8211&…

AI:128-基于机器学习的建筑物能源消耗预测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

02 c++入门

目录 c关键字命名空间c输入&输出缺省参数函数重载引用内联函数auto关键字(c11)基于范围的for循环(c11)指针空值—nullptr(c11) 0. 本节知识点安排目的 c是在c的基础上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式等…

【论文精读】DINO

摘要 基于对ViT在监督学习领域的表现质疑&#xff0c;探究自监督方法下的ViT是否具有更好的特征提取能力&#xff0c;进而发现&#xff1a; 自监督ViT特征包含场景布局、对象边界。这些信息可以在最后一自注意力模块中直接访问。自监督ViT特征结合最近邻分类器(k-NN)分类头中表…

java-8组合式异步编程

11.1 Future 接口 Future接口在Java5中被引人&#xff0c;设计初衷是对将来某个时刻会发生的结果进行建模。它建模了一种异步计算&#xff0c;返回一个执行运算结果的引用&#xff0c;当运算结束后&#xff0c;这个引用被返回给调用方。在Future中触发那些潜在耗时的操作把调用…

【VSCode】使用笔记

目录 快捷键系列 相关插件 相关文档链接 快捷键系列 调出终端 ctrl 或者是ctrlJ 结束进程 ctrlc 注释 ctrlkc 取消注释 ctrlku 上下移动代码 alt方向键 多行光标ctrlalt方向键 快速跳过某个单词 ctrl方向键 相关插件 1.每次修改后&#xff0c;自动保存启动项目 相…

【AIGC】Stable Diffusion介绍

Stable Diffusion 是一个基于 OpenAI 的 Diffusion 模型的扩展版本&#xff0c;它采用了稳定扩散&#xff08;Stable Diffusion&#xff09;的技术&#xff0c;旨在提高图像生成和处理的质量。下面是 Stable Diffusion 的详细介绍&#xff1a; 基于 Diffusion 的图像生成&…

【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱6(附带项目源码)

效果演示 文章目录 效果演示系列目录前言存储加载物品信息源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中&#xff0c;我们将探索如何用unity制作一个3D背包、库存、制作、快…

基于stm32的水产养殖环境监测系统设计

基于STM32的水产养殖环境监测系统设计 一、引言 随着水产养殖业的快速发展,水质管理成为影响养殖效益的关键因素。因此,开发一种基于STM32的水产养殖环境监测系统,用于实时监测水质参数并提供报警机制,对于提高养殖效率、减少损失具有重要意义。 二、系统架构 整个系统…

黄金交易策略(Nerve Nnife.mql4):移动止盈的设计

完整EA&#xff1a;Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 相较mt4的止盈止损&#xff0c;在ea上实现移动止盈&#xff0c;可以尽最大可能去获得更高收益。移动止盈的大体逻辑是&#xff1a;到达止盈点就开始追踪止盈&#xff0c;直到在最高盈利点回撤指定点数即平…

内网渗透Searchall敏感凭证信息搜索工具

一、开发背景 在实战中进入内网的时候&#xff0c;大家需要搜集一些敏感信息例如账号&#xff0c;密码甚至浏览器的账号密码。searchall完美解决了这个问题。所以我就结合自身的经验写了一款搜索敏感信息的利用工具。它可以搜索敏感信息&#xff0c;更快为你获取到有价值的信息…

【机器学习】数据清洗之识别重复点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

武器级工具包 Immunity Canvas 7.26安装使用体验

介绍&#xff1a; Immunity Canvas工具包有集成化、自动化、简单化的特点&#xff0c;大幅降低了攻击门槛。该工具是Immunity公司的一款商业级漏洞利用和渗透测试工具&#xff0c;包含了480多个以上的漏洞利用&#xff0c;该工具工具本来并不开源&#xff0c;但是在2021年Immu…

函数递归与迭代附n的阶乘+顺序打印一个整数的每一位数+求第n个斐波那契数

1. 什么是递归&#xff1f; 递归其实是一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是函数自己调用自己。 下面是一个最简单的C语言递归代码&#xff1a; #include <stdio.h> int main() {printf("hehe\n");main();//main函数中⼜调⽤了main函数…