touch_x_register 记录触摸屏X坐标 0x021B4008 touch_y_register 记录触摸屏Y坐标 0x021B400C touch_clean_register 写入任意值...编写驱动程序 request_irq 在中断处理函数里 上报按下、松开的事件 如果触摸屏被按下,启动定时器 如果触摸屏被松开,取消定时器 在定时器函数里 如果触摸屏还是被按下的状态.../arm-linux-gnueabihf/libc/usr/lib/ 复制库、APP到开发板 假设在Ubuntu的/home/book/nfs_rootfs目录下有tslib-1.21。...可以自动扫描到触摸屏设备, 使用tslib时就不需要设置这些环境变量: export TSLIB_TSDEVICE=/dev/input/event3 export TSLIB_CALIBFILE=/...=none export TSLIB_FBDEVICE=/dev/fb0 slib可以自动扫描到触摸屏设备, 使用tslib时就不需要设置这些环境变量: export TSLIB_TSDEVICE=/
1.先在网上下载 tslib-1.4.tar.gz压缩包 2.然后在ubuntu编译: tar xzf tslib-1.4.tar.gz cd tslib ..../autogen.sh mkdir tmp //创建安装目录 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache.../configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp //配置到tmp目录下 make...): //# module_raw input //改为: //module_raw input 配置LCD和触摸屏环境...: export TSLIB_TSDEVICE=/dev/event0 //ts设备文件(触摸屏):event0 export TSLIB_CALIBFILE=/etc
1 tslib的使用 Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。.../configure --host=arm-linux-gnueabihf --prefix=/home/xxpcb/myTest/imx6ull/otherlib/tslib/tslib/ make...中,对于输入设备,例如按键、 鼠标、 键盘、 触摸屏等,为了更加方便统一的管理, Linux内核为此专门做了一个input子系统的框架来处理输入事件。...如果要使用触摸屏的inpu件功能,就需要注册EV_KEY事件, 3.2.2 按键值类型 evbit、keybit、relbit 等等都是存放不同事件对应的值,Linux 内核定义了很多按键值: #define...方法如下: 将自己写的触摸屏驱动文件拷贝到Linux内核的drivers/input/touchscreen/目录下: cp gt911.c ../..
首发平台:微信公众号baiwenkeji 很多人在做触摸屏驱动实验,移植tslib库时,可能会出现错误提示“selected device is not a touchscreen I understand...原因非常简单:tslib中的输入系统和内核input系统版本不匹配,当然也有其他原因,不过这是最常见的情况,先分析一下tslib代码,观察这句话在什么情况下被打印就知道了。...将tslib库中c和H文件加入Source Insight,跟踪源码发现,在 input-raw.c文件中有这么一段代码: static int check_fd(struct tslib_input...tslib中的input版本号是在交叉编译的时候指定的,赋值给version,而EV_VERSION是在内核中定义,笔者做tslib时,用的2.6.39内核,这个EV_VERSION定义在linux源码的...include/linux/input.h中,值是0x010001,而tslib中的version是和交叉编译器相同,查看编译器,在 /usr/local/arm/4.3.2/arm-none-linux-gnueabi
早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行,触摸屏基本成了手机的标配。所以,今天可以看看触摸屏驱动在linux上是如何进行的。...查看是否有中断函数被注册 ret = request_irq(ts.irq_tc, stylus_irq, 0, "s3c2410_ts_pen", ts.input); 8、最后 很明显,触摸屏驱动本质上还是由
本编介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试。 1 tslib编译 tslib之前在测试触摸屏的时候使用过,这里再来记录一下编译过程。.../configure --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix...= arm-linux-gnueabi-g++ QMAKE_LINK = arm-linux-gnueabi-g++ QMAKE_LINK_SHLIB...= arm-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = arm-linux-gnueabi-ar...cqs QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy QMAKE_NM = arm-linux-gnueabi-nm
敲一下arm-openwrt-linux-gcc -v这样就能出现如上提示就OK了。 接下来我们准备下编译QT前先编译tslib这个在底层使用触摸屏的时候比较方便。...这里我选择的1.15版本的,这个都可以,本身Tina再构建的时候好像就带了tslib。.../configure --host=arm-openwrt-linux ac_cv_func_malloc_0_nonnull=yes--cache-file=arm-linux.cache -prefix...=/home/v853/QT/tslib-1.15/arm-tslib 进行配置生成makefile文件。...\ -I /home/v853/QT/tslib-1.15/arm-tslib/include \ -L /home/v853/QT/tslib-1.15/arm-tslib/lib
,试验 1)首先编译触摸屏驱动 2)然后安装tslib,参考: http://www.cnblogs.com/lifexy/p/7628780.html 测试时,打印"selected device is...not a touchscreen I understand",指配置的触摸屏环境里的设备不正确 这是因为 3.4内核的input系统和tslib的input输入系统版本号不匹配. 3.4内核自带了版本号...,为0x010001: include/linux/input.h:37:#define EV_VERSION 0x010001 而tslib没有自带版本号,用的是编译器的版本号...,所以进入/usr/local/arm/4.3.2/搜索,找到为0x10000: arm-none-linux-gnueabi/libc/usr/include/linux/input.h:32:#define...所以接下来修改编译器的EV_VERSION,将: #define EV_VERSION 0x010000 改为: #define EV_VERSION 0x010001 然后进入tslib
来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 由于驱动上报的触摸屏坐标没有进行方向翻转,故上报的坐标在屏幕方向是X、Y都反了。...但是我不想 改驱动,因此只能在Linux应用上实现坐标转换。tslib对电阻屏的支持是比较好的,而且我的系统里也移植 了tslib相关的库,那么直接拿来用就好了。...1、tslib在文件系统中的配置 如果想要开机就自动加载tslib环境,则需要在rcS中添加 source /etc/profile ,让环境变量生效,这 样tslib环境在Linux系统启动后,进入文件系统的时候便能够自动将相关的环境变量加载成功...另外,还需要注意的地方是在Makefile中需要添加tslib的路径: # # Makefile # CC := arm-linux-gnueabihf-gcc LVGL_DIR_NAME ?...如上所示,我们需要在LDFLAGS处添加tslib库的路径: -L/home/yangyx/share/tslib_1.22/lib/ 这样才能识别我们在程序中调用的tslib接口。
为方便你们操作,下面贴出编译命令,假设你已经位于我们提供的内核源码目录中: $ export ARCH=arm $ export CROSS_COMPILE=arm-linux-gnueabihf-...板子进入Linux后,执行以下命令: $ fb-test // LCD上应该显示红绿蓝色块 $ echo 68 > /...4.移植触摸屏驱动 4.1 确定触摸屏型号 还是那句话,如果有触摸屏数据手册,看手册就好了。 如果没有手册,怎么办?...4.4 调试:找出问题 Tslib是触摸屏的库,自带有很多工具: a. ts_print_raw :打印触摸屏原始数据 b. ts_print :打印经过较准的数据 c. ts_test_mt:测试电容屏...=/dev/input/event1 export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_PLUGINDIR
2.移植前需要先移植好tslib库,tslib 是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口...操作触摸屏时,QT需要依赖tslib获取屏幕坐标。...export QT_QPA_FB_TSLIB=/dev/input/event2 #字体库目录 export QT_QPA_FONTDIR=$QTDIR/lib/fonts #图形插件平台 export...图1-8 Windows下的字体 1.3.6 开发板运行效果 图1-9 运行效果图 图1-10 运行效果图 图1-11 1.3.7 鼠标设置方法 如果输入源不想使用触摸屏,可以直接使用USB鼠标代替...export QT_QPA_FB_TSLIB=/dev/input/event2 #字体库目录 export QT_QPA_FONTDIR=$QTDIR/lib/fonts #图形插件平台 export
/errno.h> #include #include #include #include #include #include #include #include <linux/platform_device.h...位==1)触摸松开处,添加: input_report_abs(ts_dev, ABS_PRESSURE, 0); //上报压力值为0 //(PS:必须要上报一次压力值,否则压力值会一直为1,会影响tslib...(hexdump命令调试代码详解地址:http://www.cnblogs.com/lifexy/p/7553550.html) (PS:必须要保证有ABS_X、ABS_Y、压力、触摸按键上传,不然TSLIB...测试会失败) 9.2 使用TSLIB应用程序测试 (TSLIB安装以及使用详解地址: http://www.cnblogs.com/lifexy/p/7628780.html) TSLIB: 为触摸屏驱动获得的采样提供诸如滤波
/configure --prefix=/home/xxx/tslib --host=arm-none-linux-gnueabi make make install 当然,我以我多年栽坑经验告诉你.../lib export TSLIB_TSDEVICE=/dev/event0 export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONFFILE=/tslib/etc.../ts.conf export TSLIB_PLUGINDIR=/tslib/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_CALIBFILE=...TSLIB_TSDEVICE 指明开发板触摸屏的设备节点文件名称。 TSLIB_FBDEVICE 指明开发板LCD的设备节点文件名称。...TSLIB_CONFFILE 指明TSLIB库的配置文件的具体位置,要以实际情况为准。 TSLIB_PLUGINDIR 指明TSLIB库的插件模块的具体位置,要以实际情况为准。
/include/c++/4.5.1:/usr/local/arm/4.5.1/arm-none-linux-gnueabi/include/c++/4.5.1/arm-none-linux-gnueabi...arm-none-eabi:$CPLUS_INCLUDE_PATH source install.sh 3.修改QTE源码目录中的src/gui/embedded/qmouselinuxtp_qws.cpp文件,添加触摸屏支持...QLatin1String("/dev/h3600_ts"); # endif #else mousedev =QLatin1String("/dev/ts"); #endif */ 4.需要安装tslib...的需要先将tslib库解压好,我的不需要,故不要了,跳过 5.配置编译QTE vim arm_build.sh echo yes | ..../qteconfig.log source arm_build.sh 便开始进行配置了,其中我删除了有关tslib选项,有需要的要加上 接着会出错: /root/built_qt/qte/src
下图是我的交叉编译环境的版本: 1、下载tslib github下载地址:https://github.com/libts/tslib/releases/tag/1.22 tslib官网:http...://www.tslib.org/ 解压: tar xvf tslib-1.22.tar.gz cd tslib-1.22 依次执行: # step 1 ..../autogen.sh # step 2 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache # step 3 ..../configure --host=arm-linux-gnueabi --prefix=$(pwd)/_install --cache-file=arm-linux.cache # step 4 make...-j8 && make install 可以查看一下: zh@zh-pc:~/桌面/soft/tslib-1.22$ cd _install/ zh@zh-pc:~/桌面/soft/tslib-1.22
很多同学想把100ASK_IMX6ULL硬件一个一个测试, 触摸屏能点击的话,就表示它没问题。 另外,电容屏不需要较准。 如果你就是想走一遍,请按下面方法: a....重启后执行: export TSLIB_TSDEVICE=/dev/input/event1 export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_CALIBFILE...=/etc/pointercal export TSLIB_PLUGINDIR=/usr/lib/ts export TSLIB_CONSOLEDEVICE=none export QT_QPA_FB_TSLIB...=1 export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1 ts_calibrate c.
/include/c++/4.5.1:/usr/local/arm/4.5.1/arm-none-linux-gnueabi/include/c++/4.5.1/arm-none-linux-gnueabi...:$CPLUS_INCLUDE_PATH source install.sh 3.修改QTE源码目录中的src/gui/embedded/qmouselinuxtp_qws.cpp文件,添加触摸屏支持... QString mousedev; if (device.isEmpty()) { mousedev =QLatin1String("/dev/event0"); 4.需要安装tslib...的需要先将tslib库解压好,我的不需要,故不要了,跳过 5.配置编译QTE vim arm_build.sh echo yes | ..../qteconfig.log source arm_build.sh 便开始进行配置了,其中我删除了有关tslib选项,有需要的要加上 接着会出错: /root/built_qt/qte
触摸屏子系统是通过input子系统来实现,对应设备节点 /dev/input/eventn,熟悉套路后重点放在硬件程序的编写 一、内核自带触摸屏驱动S3c2410_ts的简单分析 S3c2410_ts.c...export TSLIB_TSDEVICE=/dev/event1 //触摸屏是哪一个 export TSLIB_CALIBFILE=/etc/pointercal // 校验文件位置...校验后在 /etc/pointercal 生成校验文件 export TSLIB_CONFFILE=/etc/ts.conf // 配置文件位置 export TSLIB_PLUGINDIR...=/lib/ts //插件位置 export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0...//显示屏 到此触摸屏驱动移植成功。
常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。 什么是输入系统? 输入设备种类繁多,能否统一它们的接口?...Linux 系统为了统一管理这些输入设备,实现了一套能兼容所有输入设备的框架:输入系统。驱动开发人员基于这套框架开发出程序,应用开发人员就可以使用统一的 API 去使用设备。...输入系统框架如下图所示: 假设用户程序直接访问/dev/input/event0设备节点,或者使用tslib访问设备节点,数据的流程如下: ① APP 发起读操作,若无数据则休眠; ② 用户操作设备...⑤ APP 对输入事件的处理: APP 获得数据的方法有 2 种:直接访问设备节点(比如/dev/input/event0,1,2,…),或者通过 tslib、 libinput 这类库来间接访问设备节点...有这几类事件(参考 Linux 内核头文件): ② code:表示该类事件下的哪一个事件 比如对于 EV_KEY(按键)类事件,它表示键盘。
成功烧写固件后,在小机端使用MiniGUI,需要进行如下几步: 使用的是触摸屏,需要进行触摸屏校准。 配置MiniGUI.cfg文件。 2.3.1 触摸屏校准....export TSLIB_PLUGINDIR=/usr/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb //...TSLIB_TSDEVICE根据触摸屏生成的设备节点来配置 export TSLIB_TSDEVICE=/dev/input/event ts_calibrate 注意TSLIB_TSDEVICE需要是生成的触摸节点...,如果使用的是电阻触摸屏,需要进行触摸屏校准,请参考本文档2.3.1小节。...出现这个原因有可能是下面步骤导致: 触摸屏没有适配校准。 参考《2.3.1触摸屏校准》/etc/ts_calibrate进行校准。 qt没有配置触摸屏的节点。
领取专属 10元无门槛券
手把手带您无忧上云