觸摸屏分類:
電阻式:定位準確,單點觸摸
電容感應式:電容感應式:支持多點觸摸,價格偏貴。工業(yè)應用最廣泛
紅外線式:價格低廉,但其外框易碎,容易產(chǎn)生光干擾,曲面情況下失真
表面聲波式:解決各種缺點,但是屏幕表面如果有水滴和塵土會使觸摸屏變的遲鈍
注:觸摸屏本質(zhì)上與液晶是分離的,觸摸屏負責的是檢測觸摸點,液晶屏負責的是顯示。區(qū)別開來;電容觸摸屏一般都需要一個驅(qū)動IC來檢測電容觸摸,且一般是通過IIC接口輸出觸摸數(shù)據(jù)的。
常見的驅(qū)動IC:GT9147:采用17*10的驅(qū)動結構(10個感應通道,17個驅(qū)動通道)
OTT2001A:采用13*8的驅(qū)動結構(8個感應通道,13個驅(qū)動通道)
注:它們與MCU連接通過4根線:SDA、SCL、RST和INT。
GT9147:GT9147的IIC地址,可以是0X14或者0X5D,當復位結束后的5ms內(nèi),如果INT是高電平,則使用0X14作為地址,否則使用0X5D作為地址,具體的設置過程,請看:GT9147數(shù)據(jù)手冊.pdf這個文檔。本章我們使用0X14作為器件地址(不含最低位,換算成讀寫命令則是讀:0X29,寫:0X28)
控制命令寄存器(0X8040)
該寄存器可以寫入不同值,實現(xiàn)不同的控制,我們一般使用0和2這兩個值,寫入2,即可軟復位GT9147,在硬復位之后,一般要往該寄存器寫2,實行軟復位。然后,寫入0,即可正常讀取坐標數(shù)據(jù)(并且會結束軟復位)。
配置寄存器組(0X8047~0X8100)
這里共186個寄存器,用于配置GT9147的各個參數(shù),這些配置一般由廠家提供給我們(一個數(shù)組),所以我們只需要將廠家給我們的配置,寫入到這些寄存器里面,即可完成GT9147的配置。
產(chǎn)品ID寄存器(0X8140~0X8143)
這里總共由4個寄存器組成,用于保存產(chǎn)品ID,對于GT9147,這4個寄存器讀出來就是:9,1,4,7四個字符(ASCII碼格式)。因此,我們可以通過這4個寄存器的值,來判斷驅(qū)動IC的型號,從而判斷是OTT2001A還是GT9147,以便執(zhí)行不同的初始化。
狀態(tài)寄存器(0X814E)
我們僅關心最高位和最低4位,最高位用于表示buffer狀態(tài),如果有數(shù)據(jù)(坐標/按鍵),buffer就會是1,最低4位用于表示有效觸點的個數(shù),范圍是:0~5,0,表示沒有觸摸,5表示有5點觸摸。
坐標數(shù)據(jù)寄存器(共30個)
這里共分成5組(5個點),每組6個寄存器存儲數(shù)據(jù),以觸點1的坐標數(shù)據(jù)寄存器組為例,
我們一般只用到觸點的x,y坐標,所以只需要讀取0X8150~0X8153的數(shù)據(jù),組合即可得到觸點坐標。其他4組分別是:0X8158、0X8160、0X8168和0X8170等開頭的16個寄存器組成,分別針對觸點2~4的坐標。同樣GT9147也支持寄存器地址自增,我們只需要發(fā)送寄存器組的首地址,然后連續(xù)讀取即可,GT9147會自動地址自增,從而提高讀取速度。