触摸屏linux
① 如何在ARM linux下使用多点触摸屏
我在3.2内核下做的,配合Xorg 1.2.4,Xinput2,Qt5.2.1。
首先,驱动程序probe的时候要声明成多点触摸的:
input_set_abs_params(input, ABS_X, 0, pdata->x_res - 1, 0, 0);
input_set_abs_params(input, ABS_Y, 0, pdata->y_res - 1, 0, 0);
input_set_abs_params(input, ABS_MT_POSITION_X,
0, pdata->x_res - 1, 0, 0);
input_set_abs_params(input, ABS_MT_POSITION_Y,
0, pdata->y_res - 1, 0, 0);
error = input_mt_init_slots(input, MAX_SUPPORT_POINTS);
pdata是board-[mach].c里面定义的platform data,如果是3.8以上的内核,你可以用device tree。
其次,提交触摸数据的时候,要提交成多点的:
for (i = 0; i < MAX_SUPPORT_POINTS; i++)
{
type = posdata.touch[i].xh >> 6;
if (type == TOUCH_EVENT_RESERVED)
continue;
x = ((posdata.touch[i].xh << 8) | (posdata.touch[i].xl)) & 0x0fff;
y = ((posdata.touch[i].yh << 8) | (posdata.touch[i].yl)) & 0x0fff;
id = (posdata.touch[i].yh >> 4) & 0x0f;
down = (type != TOUCH_EVENT_UP);
input_mt_slot(tsdata->input, id);
input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down);
if (!down)
continue;
input_report_abs(tsdata->input, ABS_MT_POSITION_X, x);
input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y);
}
input_mt_report_pointer_emulation(tsdata->input, true);
input_sync(tsdata->input);
然后,Buildroot做根文件系统的时候要选上Target packages > Libraries > Hardware handling > mtdev和Target packages > Graphic libraries and applications (graphic/text) > X.org X Window System > X11R7 Drivers > xf86-input-evdev,网上有很多文章说如何让X支持多点触摸的,那都是过去式了,现在的X和xf86-input-evdev都支持多点触摸。
最后,编译Qt开发包的时候要加上-xinput2选项,在qtbase/examples/touch里能找到触摸屏的样例代码。
② arm嵌入式linux如何实现在触摸屏上显示终端操作
什么ARM芯片的开发板啊?开发板肯定是可以脱离电脑工作的,但是想在触摸屏上显示东西,需要触摸屏驱动程序,比如电脑上的显卡驱动,触摸屏一般需要lvds驱动
既然买了开发板,肯定有带的教程、例程什么的,多看看就了解了,嵌入式的学习注重积累,不可能一蹴而就,所以不要心急,多看书,多看教程
③ EPC-9600跑Linux如何校准触摸屏
如果是换用其他尺寸的触摸屏,或者其他原因导致的触摸点击位置不正确,需要重新校准触摸屏。校准触摸屏:删除/etc/pointercal文件,然后重启即可进入校准程序。命令如下:
#wr rm /etc/pointercal
#reboot
④ linux开发板怎么样实现触摸屏校验
第一进入LINUX系统时,会出现触摸屏校验提示,按提示校准5个点就可以了.
如果想重新校验,可以如下操作
#rm /etc/pointercal (删除校准文件)
#reboot (重新启动开发板)
此时可以重新校验
⑤ linux 系统下如何实现触摸屏的滑动,放大等特效
这个就看你的触摸屏是否支持linux系统的多点触控了。如果不能就要换一块触控面板且支持linux多点操作的。不然没法。当然,找那个触摸屏厂家看看能否有技术给你改触摸屏的核心技术。
⑥ 嵌入式linux触摸屏失效
我的理解,系统启动的时候,会加载各项外设,
逻辑是,如果你没有键盘,初始化就不成功,触摸屏的驱动没有启动
有键盘,初始化成功,触摸屏驱动加载成功,拔下键盘也可以使用
⑦ 触摸屏驱动怎么设置linux 内核编译
一、 驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录; 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项; 3. 在目录的 Makefile 文件中增加对新...
⑧ Linux 系统触摸屏从左上方到右下方跑偏越来越严重!怎么办
是device tree设置触摸屏接口(使用串口)设置成bufeer方式,改成收到数据就上传问题就解决了;说明一下善于用minicom调试串口工具,很好定位问题。
⑨ 如何在ARM Linux下使用多点触摸屏
我在3.2内核下做的,配合Xorg 1.2.4,Xinput2,Qt5.2.1。
首先,驱动程序probe的时候要声明成多点触摸的:
input_set_abs_params(input, ABS_X, 0, pdata->x_res - 1, 0, 0);
input_set_abs_params(input, ABS_Y, 0, pdata->y_res - 1, 0, 0);
input_set_abs_params(input, ABS_MT_POSITION_X,
0, pdata->x_res - 1, 0, 0);
input_set_abs_params(input, ABS_MT_POSITION_Y,
0, pdata->y_res - 1, 0, 0);
error = input_mt_init_slots(input, MAX_SUPPORT_POINTS);
pdata是board-[mach].c里面定义的platform data,如果是3.8以上的内核,你可以用device tree。
其次,提交触摸数据的时候,要提交成多点的:
for (i = 0; i < MAX_SUPPORT_POINTS; i++)
{
type = posdata.touch[i].xh >> 6;
if (type == TOUCH_EVENT_RESERVED)
continue;
x = ((posdata.touch[i].xh << 8) | (posdata.touch[i].xl)) & 0x0fff;
y = ((posdata.touch[i].yh << 8) | (posdata.touch[i].yl)) & 0x0fff;
id = (posdata.touch[i].yh >> 4) & 0x0f;
down = (type != TOUCH_EVENT_UP);
input_mt_slot(tsdata->input, id);
input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down);
if (!down)
continue;
input_report_abs(tsdata->input, ABS_MT_POSITION_X, x);
input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y);
}
input_mt_report_pointer_emulation(tsdata->input, true);
input_sync(tsdata->input);
然后,Buildroot做根文件系统的时候要选上Target packages > Libraries > Hardware handling > mtdev和Target packages > Graphic libraries and applications (graphic/text) > X.org X Window System > X11R7 Drivers > xf86-input-evdev,网上有很多文章说如何让X支持多点触摸的,那都是过去式了,现在的X和xf86-input-evdev都支持多点触摸。
最后,编译Qt开发包的时候要加上-xinput2选项,在qtbase/examples/touch里能找到触摸屏的样例代码。