基于STM32的RA8806控制器LCD設計
RA8806是通過(guò)一個(gè)10位的A/D轉換器連接4線(xiàn)電阻式觸摸屏,用戶(hù)觸摸后產(chǎn)生的邏輯坐標存于TPXR,TPYR和TPZR 3個(gè)寄存器中,TPXR中存放了x軸坐標的高8位,TPYR中存放了y軸坐標的高8位,TPZR的bit[1:0]是x軸的低二位,bit[3:2]是y軸的低二位。
為了便于處理邏輯坐標,將TPXR和TPYR寄存器的數據左移2位進(jìn)行計算,再分別取出TPZR寄存器中的低二位進(jìn)行或運算,得出x,y軸的坐標。這個(gè)邏輯坐標不能直接顯示,需要進(jìn)行校準處理后根據觸摸屏的大小轉換為物理坐標顯示,設計程序如下:

如果用戶(hù)觸摸的范圍超出了設定的顯示窗口,就需要對邏輯坐標(x,y)進(jìn)行判斷,如果超出了范圍,邏輯坐標無(wú)效,就將鼠標設置到對應的邊緣,反之邏輯坐標有效。
2.3 觸摸屏校準
由于觸摸屏自身的性能不好,或使用一段時(shí)間后會(huì )發(fā)現邏輯坐標和物理坐標的偏差越來(lái)越大,坐標不準造成誤操作影響用戶(hù)使用,這樣就要通過(guò)校準程序來(lái)減少誤差。電阻式觸摸屏的電壓成線(xiàn)性均勻分布,假設觸摸屏上一點(diǎn)的邏輯坐標為(xA,yA),對應的物理坐標為(xDA,yDA),由電阻式觸摸屏的線(xiàn)性特性可知,任意一點(diǎn)B的邏輯坐標可以用下面公式表示:

只需在觸摸屏上取3個(gè)物理坐標已知的點(diǎn)A,B,C,這3個(gè)點(diǎn)應該分布均勻不靠近邊緣以免不準確,通過(guò)讀取TPXR,TPYR,TPZR寄存器讀出邏輯坐標求出Kx,Ky,求出Kx,Ky后由式(1)校準邏輯坐標與物理坐標,圖3(a)為校準的界面,圖3(b)為校準后計算的Kx,Ky,由圖可以看出兩個(gè)系數都接近于1,說(shuō)明觸摸屏的坐標誤差比較小。本文引用地址:http://dyxdggzs.com/article/191251.htm
3 結語(yǔ)
RA8806控制器在軟件設計上方便、靈活,能滿(mǎn)足開(kāi)發(fā)人員對中等尺寸觸摸屏控制器的要求,豐富的功能和較高的性?xún)r(jià)比使RA8806控制器的LCD在市場(chǎng)上有很大的優(yōu)勢,基于RA8806的觸摸屏與STM32嵌入式系統通過(guò)數據總線(xiàn)方式相結合,可以構造出理想的人機交互界面,具有廣闊的應用領(lǐng)域。
評論