觸摸屏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里能找到觸摸屏的樣例代碼。