基于STM32的RA8806控制器LCD設(shè)計
RA8806是通過一個10位的A/D轉(zhuǎn)換器連接4線電阻式觸摸屏,用戶觸摸后產(chǎn)生的邏輯坐標存于TPXR,TPYR和TPZR 3個寄存器中,TPXR中存放了x軸坐標的高8位,TPYR中存放了y軸坐標的高8位,TPZR的bit[1:0]是x軸的低二位,bit[3:2]是y軸的低二位。
為了便于處理邏輯坐標,將TPXR和TPYR寄存器的數(shù)據(jù)左移2位進行計算,再分別取出TPZR寄存器中的低二位進行或運算,得出x,y軸的坐標。這個邏輯坐標不能直接顯示,需要進行校準處理后根據(jù)觸摸屏的大小轉(zhuǎn)換為物理坐標顯示,設(shè)計程序如下:
如果用戶觸摸的范圍超出了設(shè)定的顯示窗口,就需要對邏輯坐標(x,y)進行判斷,如果超出了范圍,邏輯坐標無效,就將鼠標設(shè)置到對應(yīng)的邊緣,反之邏輯坐標有效。
2.3 觸摸屏校準
由于觸摸屏自身的性能不好,或使用一段時間后會發(fā)現(xiàn)邏輯坐標和物理坐標的偏差越來越大,坐標不準造成誤操作影響用戶使用,這樣就要通過校準程序來減少誤差。電阻式觸摸屏的電壓成線性均勻分布,假設(shè)觸摸屏上一點的邏輯坐標為(xA,yA),對應(yīng)的物理坐標為(xDA,yDA),由電阻式觸摸屏的線性特性可知,任意一點B的邏輯坐標可以用下面公式表示:
只需在觸摸屏上取3個物理坐標已知的點A,B,C,這3個點應(yīng)該分布均勻不靠近邊緣以免不準確,通過讀取TPXR,TPYR,TPZR寄存器讀出邏輯坐標求出Kx,Ky,求出Kx,Ky后由式(1)校準邏輯坐標與物理坐標,圖3(a)為校準的界面,圖3(b)為校準后計算的Kx,Ky,由圖可以看出兩個系數(shù)都接近于1,說明觸摸屏的坐標誤差比較小。本文引用地址:http://www.ex-cimer.com/article/191251.htm
3 結(jié)語
RA8806控制器在軟件設(shè)計上方便、靈活,能滿足開發(fā)人員對中等尺寸觸摸屏控制器的要求,豐富的功能和較高的性價比使RA8806控制器的LCD在市場上有很大的優(yōu)勢,基于RA8806的觸摸屏與STM32嵌入式系統(tǒng)通過數(shù)據(jù)總線方式相結(jié)合,可以構(gòu)造出理想的人機交互界面,具有廣闊的應(yīng)用領(lǐng)域。
評論