1、簡述
觸摸屏是覆蓋在顯示屏表面的一層薄片,當有觸摸筆接觸到觸摸屏時,系統中相應的驅動會得到觸摸筆點擊的位置,并可通知應用程序,從而實現人機交互的功能。電阻式觸摸屏是比較常見的觸摸屏,EM9280提供對于4線制電阻式觸摸屏的支持,在定制的Linux內核中已完全實現了該觸摸屏的驅動支持。
在EM9280中,觸摸屏作為輸入設備其設備文件為:“/dev/input/event0”。
本文將介紹EM9280 Linux環境下應用程序如何使用觸摸屏設備。
2、tslib移植
在采用觸摸屏的移動終端中,觸摸屏性能的調試是個重要問題之一,因為電磁噪聲的緣故,觸摸屏容易存在點擊不準確、有抖動等問題。tslib是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口。
tslib 為觸摸屏驅動和應用層之間的適配層,其從驅動處獲得原始的設備坐標數據,通過一系列的去噪、去抖、坐標變換等操作,來去除噪聲并將原始的設備坐標轉換為相應的屏幕坐標。
tslib的移植過程:
1、下載源碼:git clone https://github.com/kergoth/tslib
2、轉入工作目錄:cd tslib
3、生成configure:./autogen.sh
4、配置,生成Makefile
./configure --host=arm-none-linux-gnueabi(平臺) --prefix=/(安裝目錄)
--enable-debug=no
5、編譯 make
6、安裝 make install
在指定的安裝目錄下生成/bin /etc /lib /include文件夾。然后將相應目錄下的文件分別復制到EM9280的根文件系統中對應目錄中。
還需要進行一些參數的配置。
/etc目錄下的profile需要指定 tslib的設備及路徑:
export set TCLIB_TSDEVICE=/dev/input/event0
export set TCLIB_CALIBFILE=/etc/pointercal
export set TCLIB_CONFFILE=/etc/ts.conf
export set TCLIB_PLUGINDIR=/lib/ts
tslib中包括有觸摸屏測試程序ts_test ,運行ts_test之前,需要先運行ts_calibrate對觸摸屏進行校準。
3、觸摸屏的應用程序開發
為了方便客戶觸摸屏應用程序開發,我們將tslib中的測試程序ts_test程序導出,利用tslib的動態庫文件libts.so,可直接在英創公司提供的應用開發工具 eclipse上進行ts_test直接編譯,生成具有同樣功能的觸摸屏測試程序。這種方式的好處是應用程序可直接利用tslib所提供的接口函數,獲取到觸摸屏操作后所得到的x、y坐標值,客戶可方便地在此基礎實現人機交互操作界面的需求。
在eclipse環境下建立一個c++ project:ts_test,該工程文件中需要導入以下文件:
ts_test.c //觸摸屏測試主程序
tslib.h //定義操作ts的接口函數
libts.so //動態庫,即tslib.h文件各個接口函數的具體實現
fbutils.c fbutils.h //定義和屏幕顯示相關的接口函數
font.h font_8x16.c font_8x8.c //定義顯示字符的font
從上述說明可以看出,和ts接口相關的主要函數定義在tslib.h libts.so這個兩個文件中。
該工程文件中用到專用的動態庫libts.so,在eclipse環境對此程序編譯時,需要設置相應的編譯屬性。在Project Explorer視窗下,選擇需要設置的工程文件,然后點擊鼠標右鍵,選擇 Properties項,在窗口中選擇C/C++ Build -> Settings -> Tool Settings -> Sourcery G++ C++ Linker -> Libraries,如下圖所示。其中的一個窗口用于指定庫文件的名稱,一個用于指定庫文件的路徑。
-
Linux
+關注
關注
87文章
11379瀏覽量
211351 -
嵌入式主板
+關注
關注
7文章
6092瀏覽量
35846
發布評論請先 登錄
相關推薦
案例解說PLC、觸摸屏及變頻器綜合應用
Maxtouch觸摸屏:多場景觸控解決方案

4線電阻式觸摸屏是如何工作的

觸摸屏與傳統顯示器比較
LCD屏和觸摸屏的PCB設計

評論