tslib库编译与移植

article/2025/1/16 5:03:19

tslib库编译与移植

1.tslib库简介

  tslib 是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

2 相关工具安装

  安装必要工具libtool、automake、autoconf

$ sudo apt-get install libtool
$ sudo apt-get install automake
$ sudo apt-get install autoconf

3 tslib安装步骤

  • 系统环境

开发环境: Ubuntu18.04
目标开发板: Tiny4412
交叉编译器: arm-linux-gcc
Linux内核: Linux3.5

  1.下载tslib库源码包,将源码解压到用户目录下。
  tslib源码下载地址:https://github.com/libts/tslib/releases

[wbyq@wbyq soft_work]$ tar xvf /mnt/hgfs/ubuntu/soft_pack/tslib-master.tar.gz  #解压
[wbyq@wbyq soft_work]$cd tslib-master/tslib-master/    #进入到源码目录下
[wbyq@wbyq tslib-master]$ ls

在这里插入图片描述
  2.configure配置,生成Makefile文件。

[wbyq@wbyq tslib-master]$ ./autogen.sh
[wbyq@wbyq tslib-master]$ ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache --prefix=$PWD/_install

- -host=arm-linux - - -指定编译器
- -prefix=$PWD/_install - - -指定安装目录

  3.编译安装。

[wbyq@wbyq tslib-master]$ make && make install  

  编译安装好后会生成 _install 文件夹。
在这里插入图片描述
  生成的文件信息:

[wbyq@wbyq tslib-master]$ cd _install/
[wbyq@wbyq _install]$ tree
.
├── bin
│   ├── ts_calibrate
│   ├── ts_harvest
│   ├── ts_print
│   ├── ts_print_raw
│   └── ts_test
├── etc
│   └── ts.conf
├── include
│   └── tslib.h
└── lib├── libts-1.0.so.0 -> libts-1.0.so.0.0.0├── libts-1.0.so.0.0.0├── libts.la├── libts.so -> libts-1.0.so.0.0.0├── pkgconfig│   ├── tslib-1.0.pc│   └── tslib.pc└── ts├── arctic2.la├── arctic2.so├── collie.la├── collie.so├── corgi.la├── corgi.so├── dejitter.la├── dejitter.so├── dmc.la├── dmc.so├── galax.la├── galax.so├── h3600.la├── h3600.so├── input.la├── input.so├── linear_h2200.la├── linear_h2200.so├── linear.la├── linear.so├── mk712.la├── mk712.so├── pthres.la├── pthres.so├── tatung.la├── tatung.so├── touchkit.la├── touchkit.so├── ucb1x00.la├── ucb1x00.so├── variance.la└── variance.so6 directories, 45 files

  4.拷贝bin目录下的文件到开发板/bin目录下。

[wbyq@wbyq _install]$ cp bin/* /home/wbyq/soft_work/rootfs/bin/

  5.拷贝lib目录下的.so文件到开发板的/lib目录下。

[wbyq@wbyq _install]$ cp lib/*.so* /home/wbyq/soft_work/rootfs/lib/ -rfdv
[wbyq@wbyq _install]$ cp lib/ts/ /home/wbyq/soft_work/rootfs/lib/ -rfdv

  6.拷贝etc/ts.conf文件到开发板的/etc目录下。

[wbyq@wbyq _install]$ cp etc/ts.conf /home/wbyq/soft_work/rootfs/etc/ 

  7.修改配置文件。
  如果希望使用linux输入层事件接口,需要取消module_raw input 注释。

[wbyq@wbyq _install]$ vim /home/wbyq/soft_work/rootfs/etc/ts.conf

在这里插入图片描述
  8.配置开发板的的启动文件 profile。

[wbyq@wbyq _install]$ vim /home/wbyq/soft_work/rootfs/etc/profile 

在这里插入图片描述

export set TSLIB_TSDEVICE=/dev/input/event2 #设置触摸屏设备节点
export set TSLIB_CONFFILE=/etc/ts.conf #配置文件环境变量
export set TSLIB_PLUGINDIR=/lib/ts #指定tslib插件目录
export set TSLIB_CALIBFILE=/etc/pointercal  #指定校准之后,信息保存的位置(会自动生成)
export set TSLIB_CONSOLEDEVICE=none  #指定控制台设备文件名字,默认没有。填none
export set TSLIB_FBDEVICE=/dev/fb0 #屏幕设备节点

注意: 设置完环境变量之后,需要重启开发板生效,或者使用 source 命令立即生效。

4 开发板运行效果

  安装触摸屏驱动,检查触摸屏设备节点是否为上面设置的event2,运行ts_test

[root@wbyq code]# insmod ft5x06_dev.ko 
[  759.390000] IIC子系统:设备层注册成功
[root@wbyq code]# insmod ft5x06_drv.ko 
[  762.175000] IIC子系统:驱动层注册成功
[  762.175000] 资源匹配成功
[  762.175000] input: Unspecified device as /devices/virtual/input/input3
[root@wbyq code]# ts_test 
874.277420:    388    354      1
874.322712:    384    352      1
874.337917:    369    348      1
874.353162:    355    346      1
874.368397:    332    343      1
874.383524:    304    339      1
874.398664:    277    337      1
874.413889:    258    336      1
874.429156:    243    335      1
874.444247:    234    334      1
874.474649:    230    333      1
874.489914:    236    330      1
874.504974:    248    328      1

在这里插入图片描述
在这里插入图片描述
  tslib中提供的测试命令,是通过ts.config文件读取相应的触摸屏配置信息和LCD屏配置信息。

5 调用tslib库获取触摸屏坐标

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>#include "tslib.h"
int main(int argc,char *argv[])
{struct tsdev *ts;char *tsdevice=NULL;/*打开触摸屏设备节点*/if( (tsdevice = getenv("TSLIB_TSDEVICE")) != NULL ) {ts = ts_open(tsdevice,0);} else {ts = ts_open("/dev/input/event2",0);}if(ts==NULL){perror("ts_open");exit(1);}if (ts_config(ts)) {perror("ts_config");exit(1);}struct ts_sample samp;int ret;printf("   时间    \t X坐标   \t Y坐标\t压力值 \n");while (1) {ret = ts_read(ts, &samp, 1);if (ret < 0) {perror("ts_read");exit(1);}if (ret != 1)continue;printf("[%ld.%06ld] %6d %6d %6d\n", samp.tv.tv_sec, samp.tv.tv_usec,samp.x, samp.y, samp.pressure);}return 0;	
}
  • 程序编译:
cflags=-I/home/wbyq/soft_work/tslib-master/tslib-master/_install/include  #指定头文件
cflags+=-L/home/wbyq/soft_work/tslib-master/tslib-master/_install/lib  #指定库文件路径
cflags+=-lts  #指定库
app:arm-linux-gcc app.c -o app $(cflags)
  • 运行效果:
[root@wbyq code]# ./app 时间       X坐标   Y坐标   压力值 
[4591.061816]    337    369      1
[4591.124190]    337    369      0
[4592.426659]    512    399      1
[4592.502302]    507    400      1
[4592.517474]    503    401      1
[4592.532512]    500    403      1
[4592.547776]    494    405      1
[4592.562922]    489    408      1
[4592.578111]    483    410      1
[4592.593260]    479    412      1
[4592.624739]    475    415      1
[4592.655903]    472    417      0
[4592.972564]    442    402      1
[4593.063510]    445    402      1
[4593.078637]    449    402      1
[4593.093764]    452    403      1
[4593.109025]    459    404      1
[4593.124148]    465    404      1

在这里插入图片描述
  触摸屏驱动参考示例:https://blog.csdn.net/weixin_44453694/article/details/126906896


http://chatgpt.dhexx.cn/article/J0V7yME5.shtml

相关文章

tslib安装以及使用

tslib的一些小问题&#xff1a;https://blog.csdn.net/xiaodingqq/article/details/80807362 1.先在网上下载 tslib-1.4.tar.gz压缩包 2.然后在ubuntu编译&#xff1a; tar xzf tslib-1.4.tar.gzcd tslib./autogen.sh      mkdir tmp          //创建安…

使用 tslib 库

tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库&#xff0c;并且是开源。 tslib 为触摸屏驱动和应用层之间的适配层&#xff0c; 它把应用程序中读取触摸屏 struct input_event 类型数据&#xff08;这是输入设备上报给应用层的原始数据&#xff09;并进行解析的操作过程…

tslib 的安装与使用

5 tslib 需要安装好触摸屏驱动 tslib 是一个触摸屏的开源库&#xff0c;可以使用它来访问触摸屏设备&#xff0c;可以给输入设备添加各种“filter”(过滤器&#xff0c;就是各种处理)&#xff0c;地址是&#xff1a;http://www.tslib.org/。 编译 tslib 后&#xff0c;可以得到…

第三方库介绍——tslib库

文章目录 tslib 简介tslib 框架分析tslib 的框架 交叉编译、测试 tslibtslib应用程序 tslib 简介 tslib 是一个触摸屏的开源库&#xff0c;可以使用它来访问触摸屏设备&#xff0c;可以给输入设备添加各种“ filter ”( 过滤器&#xff0c;就是各种处理) 编译 tslib 后&#…

tslib框架分析

tslib时一个触摸屏的开源库&#xff0c;可以使用它来访问触摸屏设备&#xff0c;可以输入给设备添加各种"filter"&#xff0c;地址这里 编译tslib后&#xff0c;可以得到libts库&#xff0c;还可以得到各种工具&#xff1a;校准工具、测试工具 一、tslib框架分析 …

暑假实训成果及心得

暑假实训成果及心得 本次暑假实训主要从大数据的现况及前景出发&#xff0c;通过大数据发展的趋势及鲲鹏云大数据对大数据有了一个全新的认识。 自我介绍 本着对大数据热爱&#xff0c;我毅然决然的踏上了这条大数据的不归路。第一次接触大数据是在高三的语文试卷里&#xf…

大学生mysql实训心得_大学生实训心得体会范文(精选3篇)

大学生实训心得体会范文(精选3篇) 当在某些事情上我们有很深的体会时,往往会写一篇心得体会,这样可以帮助我们总结以往思想、工作和学习。一起来学习心得体会是如何写的吧,以下是小编为大家收集的大学生实训心得体会范文(精选3篇),仅供参考,欢迎大家阅读。 大学生实训心得…

谈谈我的实习感受~

写在前面 有粉丝私信说&#xff0c;让我出一篇关于工作感受的文章&#xff0c;今天他来了。 初来乍到 刚入职的时候&#xff0c;一个词形容——一脸懵逼&#xff0c;不过有人带着会好很多&#xff0c;他会告诉你需要做什么&#xff0c;当然了刚来的一两周一般都是熟悉公司业务&…

c语言实验报告总结通用版,大学生实训心得体会(通用11篇)

大学生实训心得体会(通用11篇) 我们心里有一些收获后,好好地写一份心得体会,这样能够培养人思考的习惯。很多人都十分头疼怎么写一篇精彩的心得体会,以下是小编精心整理的大学生实训心得体会(通用11篇),欢迎大家分享。 大学生实训心得体会1 在我们过去的读书生涯中,有一个…

云计算实训报告总结_实训报告心得体会(通用5篇)

实训报告心得体会(通用5篇) 我们在一些事情上受到启发后,马上将其记录下来,这样就可以总结出具体的经验和想法。那么如何写心得体会才能更有感染力呢?以下是小编帮大家整理的实训报告心得体会(通用5篇),欢迎阅读,希望大家能够喜欢。 实训报告心得体会1 我对于visualbasic的…

大学生html5实训报告,大学生实训心得体会范文(精选5篇)

大学生实训心得体会范文(精选5篇) 当我们积累了新的体会时,应该马上记录下来,写一篇心得体会,如此就可以提升我们写作能力了。你想好怎么写心得体会了吗?下面是小编整理的大学生实训心得体会范文(精选5篇),仅供参考,大家一起来看看吧。 大学生实训心得体会1 五月,在各种…

html5实训总结200字,实训心得体会范文200字(通用5篇)

实训心得体会范文200字(通用5篇) 当我们心中积累了不少感想和见解时,写心得体会是一个不错的选择,这样就可以通过不断总结,丰富我们的思想。那么心得体会怎么写才恰当呢?下面是小编收集整理的实训心得体会范文200字(通用5篇),仅供参考,大家一起来看看吧。 实训心得体会1 …

大学生html5实训心得体会,实训心得体会600字(精选5篇)

实训心得体会600字(精选5篇) 当我们心中积累了不少感想和见解时,写一篇心得体会,记录下来,这样我们就可以提高对思维的训练。但是心得体会有什么要求呢?下面是小编帮大家整理的实训心得体会600字(精选5篇),欢迎阅读,希望大家能够喜欢。 实训心得体会600字1 时间过的真快,…

上第一次实训课感想

上第一次Java实训课感想 第一天开始实训,有点担心自己不会做,但第一天分配的任务比我想象的要简单一点,是用navicat创建数据表,用到了mysql的知识。 比较麻烦的就是给表导入数据,因为数据比较多,所以比较麻烦,但总体来说还好。 然后用百度脑图创建了一张思维导图,如下…

html怎么制作表单,HTML如何制作表单

制作表单的方法&#xff1a;首先使用form标签创建表单&#xff0c;搭建表单框架&#xff1b;然后使用input标签创建文本输入框和提交按钮&#xff1b;接着使用select和option标签创建下拉列表&#xff1b;最后使用textarea标签创建文本区域即可。 本教程操作环境&#xff1a;wi…

HTML 什么是表单

什么是表单 HTML 表单的主要作用是接收用户的输入&#xff0c;当用户提交表单时&#xff0c;浏览器将用户在表单中输入的数据打包&#xff0c;并发送给服务器&#xff0c;从而实现用户与Web服务器的交互。 表单是控件的容器&#xff0c;一个表单由form元素、表单控件和表单按…

HTML表单和表格

一.表单 HTML 表单简介 定义和用法 HTML 常用表单元素 属性 1.1 HTML表单简介 HTML 表单是 HTML 文档中的 一个区域 HTML 表单这个区域中包含了一系列的 可交互元素 HTML 表单主要用于 收集用户输入信息 1.2 定义和用法 <form> 标签用于为用户输入创建 HTML 表单。 …

HTML登录表单的制作

表单的知识点总结 form必须有action属性&#xff0c;表示提交地址所有需要提交的数据&#xff0c;input必须有name属性input按钮的文字&#xff0c;使用value属性表示input必须放在form标签才能提交 input标签常见类型总结 文本输入框 密码输入框 单选框 复选框 type"…

HTML网页设计:十一、表单

表单 HTML系列文章目录 HTML网页设计&#xff1a;一、HTML的基本结构HTML网页设计&#xff1a;二、网页的基本标签HTML网页设计&#xff1a;三、图像标签之&#xff1c;img&#xff1e;标签HTML网页设计&#xff1a;四、超链接HTML网页设计&#xff1a;五、行内元素和块元素H…

HTML表单--如何使用HTML创建表单

HTML表单是什么&#xff1f; HTML 表单用于收集用户输入&#xff0c;与服务器进行交互&#xff0c;使用form元素来定义一个HTML表单。 下面简单介绍表单中常见元素的用法。 1.表单标签 form 属性&#xff1a; action —数据提交的服务器地址method— 数据提交的方法 数据提…