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