在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

tslib庫(kù)編譯與移植

嵌入式技術(shù) ? 來(lái)源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-11-26 09:14 ? 次閱讀

1.tslib庫(kù)簡(jiǎn)介

??tslib 是電阻式觸摸屏用于校準(zhǔn)的一個(gè)軟件庫(kù),是一個(gè)開(kāi)源的程序,能夠?yàn)橛|摸屏驅(qū)動(dòng)獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動(dòng)的適配層,為上層的應(yīng)用提供了一個(gè)統(tǒng)一的接口

2 相關(guān)工具安裝

??安裝必要工具libtool、automake、autoconf

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

3 tslib安裝步驟

系統(tǒng)環(huán)境

開(kāi)發(fā)環(huán)境: Ubuntu18.04
目標(biāo)開(kāi)發(fā)板: Tiny4412
交叉編譯器: arm-linux-gcc
Linux內(nèi)核: Linux3.5

??1.下載tslib庫(kù)源碼包,將源碼解壓到用戶目錄下。

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/    #進(jìn)入到源碼目錄下
[wbyq@wbyq tslib-master]$ ls
pYYBAGOBaI6AG2iBAACfFzUyPlM220.png#pic_center

??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  

??編譯安裝好后會(huì)生成 _install 文件夾。

poYBAGOBaI-AZgBjAAFoTBCxuFI230.png#pic_center

??生成的文件信息

[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.so

6 directories, 45 files

?4.拷貝bin目錄下的文件到開(kāi)發(fā)板/bin目錄下。

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

?5.拷貝lib目錄下的.so文件到開(kāi)發(fā)板的/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文件到開(kāi)發(fā)板的/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
pYYBAGOBaI-ABCi9AAHWuXgb7IM175.png#pic_center

??8.配置開(kāi)發(fā)板的的啟動(dòng)文件 profile。

[wbyq@wbyq _install]$ vim /home/wbyq/soft_work/rootfs/etc/profile 
poYBAGOBaJCAZ7O-AAJsvZrzwU8084.png#pic_center
export set TSLIB_TSDEVICE=/dev/input/event2 #設(shè)置觸摸屏設(shè)備節(jié)點(diǎn)
export set TSLIB_CONFFILE=/etc/ts.conf #配置文件環(huán)境變量
export set TSLIB_PLUGINDIR=/lib/ts #指定tslib插件目錄
export set TSLIB_CALIBFILE=/etc/pointercal  #指定校準(zhǔn)之后,信息保存的位置(會(huì)自動(dòng)生成)
export set TSLIB_CONSOLEDEVICE=none  #指定控制臺(tái)設(shè)備文件名字,默認(rèn)沒(méi)有。填none
export set TSLIB_FBDEVICE=/dev/fb0 #屏幕設(shè)備節(jié)點(diǎn)

注意: 設(shè)置完環(huán)境變量之后,需要重啟開(kāi)發(fā)板生效,或者使用 source 命令立即生效。

4 開(kāi)發(fā)板運(yùn)行效果

??安裝觸摸屏驅(qū)動(dòng),檢查觸摸屏設(shè)備節(jié)點(diǎn)是否為上面設(shè)置的event2,運(yùn)行ts_test。

[root@wbyq code]# insmod ft5x06_dev.ko 
[  759.390000] IIC子系統(tǒng):設(shè)備層注冊(cè)成功
[root@wbyq code]# insmod ft5x06_drv.ko 
[  762.175000] IIC子系統(tǒng):驅(qū)動(dòng)層注冊(cè)成功
[  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
pYYBAGOBaJCASifKAAHqG0EDMJE024.png#pic_centerpYYBAGOBaJGAWONQAAKXZO7A0lc832.png#pic_center

??tslib中提供的測(cè)試命令,是通過(guò)ts.config文件讀取相應(yīng)的觸摸屏配置信息和LCD屏配置信息。

5 調(diào)用tslib庫(kù)獲取觸摸屏坐標(biāo)

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include "tslib.h"
int main(int argc,char *argv[])
{
	struct tsdev *ts;
	char *tsdevice=NULL;
	/*打開(kāi)觸摸屏設(shè)備節(jié)點(diǎn)*/
	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("   時(shí)間    t X坐標(biāo)   t Y坐標(biāo)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 %6dn", 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  #指定庫(kù)文件路徑
cflags+=-lts  #指定庫(kù)
app:
	arm-linux-gcc app.c -o app $(cflags)

運(yùn)行效果:

[root@wbyq code]# ./app 
   時(shí)間       X坐標(biāo)   Y坐標(biāo)   壓力值 
[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
pYYBAGOBaJKAc582AAD3OU0pxnc494.png#pic_center

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305151
  • 觸摸屏
    +關(guān)注

    關(guān)注

    42

    文章

    2306

    瀏覽量

    116183
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    379

    瀏覽量

    28130
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49129
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32870
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)中tslib庫(kù)的基本原理與實(shí)現(xiàn)方法

    今天主要和大家聊一聊,如何使用tslib庫(kù)來(lái)完成對(duì)應(yīng)的功能。
    發(fā)表于 11-14 09:57 ?2724次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-交叉編譯移植tslib

    tslib是專門(mén)為觸摸屏設(shè)備所開(kāi)發(fā)的Linux應(yīng)用層函數(shù)庫(kù)。1、下載源碼。https://github.com/libts/tslib/releases2、拷貝源碼到開(kāi)發(fā)環(huán)境/home/elf
    發(fā)表于 07-24 10:47

    【OK210試用體驗(yàn)】之qt移植tslib編譯和配置

    解決了,其他移植前首先需要tslib庫(kù),該庫(kù)是觸摸屏校準(zhǔn)時(shí)需要的庫(kù)文件,如對(duì)觸摸屏的數(shù)據(jù)進(jìn)行過(guò)濾、去抖動(dòng)等,qt的
    發(fā)表于 09-28 12:46

    tslib1.4的編譯與安裝

    tslib1.4 是觸摸屏用于校準(zhǔn)的一個(gè)軟件庫(kù),是一個(gè)開(kāi)源的程序,能夠?yàn)橛|摸屏驅(qū)動(dòng)獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動(dòng)的適配層,為上層的應(yīng)用提供了一個(gè)統(tǒng)一的接口。因此這里先
    發(fā)表于 10-13 10:22

    移植tslib后,ts_calibrate測(cè)試屏幕黑屏

    移植tslib后,執(zhí)行ts_calibrate或ts_test,屏幕立馬黑屏,是什么原因呢?
    發(fā)表于 10-14 10:14

    移植TSLIB后測(cè)試TSLIB帶的程序,觸摸測(cè)試程序時(shí)界面下面的圖標(biāo)也會(huì)被點(diǎn)開(kāi)

    我在OK6410上移植tslib庫(kù)后,配置好環(huán)境變量等,運(yùn)行 tslib/bin/下面的幾個(gè)測(cè)試程序,如ts_test ts_print,以及觸摸屏校準(zhǔn),這時(shí)會(huì)彈出個(gè)黑色界面,上面有十
    發(fā)表于 05-18 17:30

    【創(chuàng)龍AM4379 Cortex-A9試用體驗(yàn)】之移植QT5.4.1與tslib1.4到TL-4379開(kāi)發(fā)板

    移植。1.交叉編譯tslib1.4當(dāng)前,對(duì)觸摸屏信號(hào)的獲取、校正、濾波處理,均采用開(kāi)源的tslib,我們采用tslib1.4.首先到網(wǎng)上下
    發(fā)表于 06-26 15:56

    【Rico Board試用體驗(yàn)】之編譯觸摸屏驅(qū)動(dòng)Tslib

    PC上的不太一樣,需要先對(duì)Tslib進(jìn)行移植,其中也要保證交叉編譯器一致,這里我們選用官方提供的交叉編譯器即可。具體搭建環(huán)境參考前面帖子,下面說(shuō)下具體
    發(fā)表于 12-28 09:04

    移植tslib庫(kù)出現(xiàn)selected device is not a touchscreen I understand的解決方法

    本帖最后由 weidongshan 于 2018-1-23 16:10 編輯 首發(fā)平臺(tái):微信公眾號(hào)baiwenkeji很多人在做觸摸屏驅(qū)動(dòng)實(shí)驗(yàn),移植tslib庫(kù)時(shí),可能會(huì)出現(xiàn)錯(cuò)誤提示
    發(fā)表于 01-23 15:51

    LINUX tslib1.4 移植全過(guò)程

    --enable-inputapi=no--prefix=/usr/local/arm-linux/tslib1.4注意,prefix選項(xiàng)更換為你的安裝路徑。 4.編譯 # make 5.安裝
    發(fā)表于 07-03 01:22

    迅為IMX6ULL開(kāi)發(fā)板Linux下電容觸摸屏實(shí)驗(yàn)-Tslib移植和使用

    54.5 Tslib移植和使用ft5426 觸摸驅(qū)動(dòng)添加成功后,發(fā)現(xiàn)觸摸可能不太準(zhǔn)確,這時(shí)可以使用一個(gè)第三方開(kāi)源庫(kù) tslib 來(lái)調(diào)試觸摸屏。下面來(lái)看一下
    發(fā)表于 12-07 10:18

    如何獲取tslib源碼?

    Tslib移植和使用獲取tslib源碼編譯tslib測(cè)試tslib使用Linux內(nèi)核自帶的ft5
    發(fā)表于 12-28 07:45

    imx6ull buildroot構(gòu)建根文件系統(tǒng)移植tslib1.21無(wú)法運(yùn)行是為什么?

    本人使用IMX6ULL開(kāi)發(fā)板,用buildroot構(gòu)建了一個(gè)根文件系統(tǒng),還未添加Qt,根文件系統(tǒng)可以燒寫(xiě)到板子上正常運(yùn)行,在移植tslib1.21把相應(yīng)的交叉編譯后的文件拷貝到主板根目錄,設(shè)置了
    發(fā)表于 01-07 06:06

    RK1808移植tslib的過(guò)程是怎樣的?

    RK1808移植tslib的過(guò)程是怎樣的?
    發(fā)表于 02-16 06:37

    嵌入式數(shù)據(jù)庫(kù)Sqlite移植教程

    嵌入式數(shù)據(jù)庫(kù)Sqlite移植教程 sqlite-3.3.6編譯安裝與交叉編譯全過(guò)程詳細(xì)記錄
    發(fā)表于 03-11 09:57 ?3719次閱讀
    主站蜘蛛池模板: 四虎成人欧美精品在永久在线| 色在线免费| 日本s色大片在线观看| 精品一区二区三区视频| 三级精品| 2021国内精品久久久久影院| 最近最新中文字幕6页| 福利社看片| 亚洲天堂免费在线| 好男人社区www在线观看| 女同国产| 91视频观看| 色色视频网| 午夜视频在线免费看| 久久午夜免费视频| aaa一区二区三区| 国产一级做a爰大片免费久久| 日本free护士姓交| av福利网址网站| 九九美剧| 91精品啪国产在线观看免费牛牛 | 天天爱夜夜操| 欧美日本一区| 久久青青成人亚洲精品| 精品久久久久久| 性免费视频| 老色批| bt 另类 专区 欧美 制服| 日日爱网址| 永久黄网站色视频免费| 国产精品视频第一区二区三区| 天堂在线网站| 中文天堂在线视频| 欧美成人午夜视频| 国产重口老太和小伙乱视频| 香蕉久久夜色精品国产2020| 猫色网站| 日xxxx| 免费人成激情视频在线观看冫| 午夜va| 在线视频人人视频www|