▲點(diǎn)擊上方“天嵌股份”關(guān)注公眾號(hào)后回復(fù)TQT113_CORE獲取板卡wiki資料
1.調(diào)試新的觸摸屏
1.1 確定設(shè)備信息
輸入設(shè)備的設(shè)備節(jié)點(diǎn)名為/dev/input/eventX(也可能是/dev/eventX, X 表示 0、 1、 2 等數(shù)字)。查看設(shè)備節(jié)點(diǎn), 可以執(zhí)行以下命令:
ls /dev/input/* -l
可以看到類(lèi)似下面的信息:
怎么知道這些設(shè)備節(jié)點(diǎn)對(duì)應(yīng)什么硬件呢?可以在板子上執(zhí)行以下命令:
cat /proc/bus/input/devices
這條指令的含義就是獲取與event對(duì)應(yīng)的相關(guān)設(shè)備信息,可以看到類(lèi)似以下的結(jié)果:
1.2 使用命令讀取數(shù)據(jù)
調(diào)試觸摸屏?xí)r, 執(zhí)行下面的命令, 然后操作觸摸屏設(shè)備即可讀出數(shù)據(jù):
hexdump /dev/input/event1
在開(kāi)發(fā)板上執(zhí)行上述命令之后, 點(diǎn)擊觸摸屏, 就會(huì)打印以下信息:
type:type 用于描述發(fā)生了哪一種類(lèi)型的事件(對(duì)事件的分類(lèi)),Linux 系統(tǒng)所支持的輸入事件類(lèi)型如下所示:
#define EV_SYN 0x00 //同步類(lèi)事件,用于同步事件
#define EV_KEY 0x01 //按鍵類(lèi)事件
#define EV_REL 0x02 //相對(duì)位移類(lèi)事件(譬如鼠標(biāo))
#define EV_ABS 0x03 //絕對(duì)位移類(lèi)事件(譬如觸摸屏)
#define EV_MSC 0x04 //其它雜類(lèi)事件
.....
code:code 表示該類(lèi)事件中的哪一個(gè)具體事件,觸摸點(diǎn)的信息通過(guò)一系列的 ABS_MT 事件(有的資料也叫消息)上報(bào)給 linux 內(nèi)核,只有ABS_MT 事件是用于多點(diǎn)觸摸
#define ABS_MT_POSITION_X 0x35 /* Center X touch position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */
......
value:內(nèi)核每次上報(bào)事件都會(huì)向應(yīng)用層發(fā)送一個(gè)數(shù)據(jù) value, 對(duì) value 值的解釋隨著 code 的變化而變化。
上圖中第三行的type 為3 ,對(duì)應(yīng)EV_ABS ,即絕對(duì)位移類(lèi)事件;code為0x39 ,對(duì)應(yīng)ABS_MT_TRACKING_ID , value=0x51=81 說(shuō)明給SLOT0分配的ID為81 。
上圖中的第六行type為3,對(duì)應(yīng)EV_ABS ,即絕對(duì)位移類(lèi)事件;code為0x36,對(duì)應(yīng)ABS_MT_POSITION_Y,即上報(bào)觸摸點(diǎn) 的 Y軸 坐標(biāo)信息。value=0x0145=325,說(shuō)明觸摸點(diǎn) Y 軸坐標(biāo)為 325。
審核編輯:湯梓紅
-
觸摸屏
+關(guān)注
關(guān)注
42文章
2306瀏覽量
116204 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97487
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論