隨著嵌入式應用對GUI圖形界面需求的增加,Qt在Linux嵌入式設備中的使用越來越廣泛,許多應用也都對人機交互界面有一定的要求。因此觸摸屏、鼠標等設備等支持也變得重要起來,英創Linux嵌入式工控板已經支持了鼠標和4線制電阻式觸摸屏在Qt中的使用,在某一些應用場合中,電容屏可能會更受歡迎,所以英創公司在EM335x和EM928x系列產品中加入了FT5316電容觸摸屏芯片的驅動程序。電容屏是人體觸摸操作,不需要按壓,而電阻屏是靠壓力感應的方式,所以需要使用筆針類的工具按壓,相比起來,給用戶的使用體驗電容屏會靈敏一些。
1、硬件接口
FT5316電容觸摸屏芯片的通訊接口為I2C,并且還需要一路中斷信號和一路復位信號,在EM335x評估底板中,英創公司已經將電容屏的接口引出,將中斷和復位信號定義為GPIO17、18兩個管腳,具體的電路可以參考光盤中的評估底板原理圖。EM335x評估板的接口如下圖:
2、軟件驅動
在軟件上,英創公司已經將FT5316電容觸摸屏芯片驅動移植到了EM335x和EM928x系列的主板中,并且編譯成了一個模塊edt-ft5x06.ko件,存放在/lib/modules/3.12.10目錄下。要使用電容屏時,需要用insmod命令加載這個ko文件:
加載驅動以后,電容屏的節點為/dev/input/event1。
3、實際應用
因為在工控應用中電阻屏的使用還是占大部分,文件系統中所以默認的環境變量都是設置為電阻屏的節點/dev/input/event0,所以加載完驅動后,要在Qt中使用電容屏觸摸,需要設置兩個環境變量,要修改的環境變量為:QWS_MOUSE_PROTO和TSLIB_TSDEVICE,在這里介紹兩種修改的方法:
(1)在終端直接輸入:
export set TSLIB_TSDEVICE=/dev/input/event1
export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event1'
這種方法在每次重啟或者上電后,都要先輸入這兩條指令來設置。
(2)使用vi在/etc/profile文件中做如下修改:
#export set TSLIB_TSDEVICE=/dev/input/event0
export set TSLIB_TSDEVICE=/dev/input/event1
#export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'
export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event1'
即屏蔽原來電阻屏的環境變量,重新設置為電容屏,這樣只需要修改一次,不管上電或是重啟都不需要再設置了。
如果做為產品需要批量使用電容屏,可以由英創公司在出廠前修改好。
設置完后就可以使用電容屏了,使用前還是需要先校準一次,在終端輸入:ts_calibrate依次校準完屏幕上的五個點,就可以正常使用了。
成都英創信息技術有限公司 028-8618 0660