Masterat stm32f103ve tft LCD touch screen (partea 4)

Calibrarea ecranului este necesară pentru a se asigura că valorile coordonatelor ecranului tactil coincid cu valorile coordonatelor LCD. Puteți efectua operații matematice simple și aliniați mai mult sau mai puțin valorile. Dar nu se întâmplă exact și de fiecare dată când trebuie să schimbați programul pentru un triplu separat. Și dacă ecranul tactil este lipit cu un oblic, atunci nu există operațiuni simple pentru a face față.

Masterat stm32f103ve tft LCD touch screen (partea 4)

Algoritmul de lucru cu ecranul tactil este simplu:
1. Obținerea coordonatelor de la controlerul touch screen (Xt, Yt)
2. Reducerea coordonatelor cu ajutorul ecuațiilor (Xd, Yd)

Masterat stm32f103ve tft LCD touch screen (partea 4)

Coeficienții A, B, C, D, E, F trebuie calculați cu ajutorul funcției de calibrare. Vom calcula cu trei puncte.

Masterat stm32f103ve tft LCD touch screen (partea 4)

Am plasat 3 puncte pe rând, după cum se arată în figură, și salvează coordonatele primite ale ecranului tactil. Este important să afișați rândul punctele de pe ecran, astfel încât utilizatorul să nu se confunde.

După ce avem coordonatele afișajului și ecranul tactil pentru trei puncte, putem calcula coeficienții de calibrare.

Masterat stm32f103ve tft LCD touch screen (partea 4)

După calcul, coordonatele pot fi stocate în memorie (din nefericire, STM32F103VE nu are un EEPROM) și se utilizează după oprire, iar calibrarea ar trebui efectuată numai atunci când este necesar.

Acum programul (o mulțime de cod):

RESCALE_FACTOR este necesar pentru a nu salva coeficienții ca dublu.

Acum, coeficienții de calibrare din memorie, efectuăm calculul coordonatelor reale utilizând funcția:

Avem coordonatele reale ale afișajului și putem afișa ca un pixel sau un cerc.

Vă mulțumesc pentru atenție.
Dacă cineva are nevoie de o arhivă completă cu proiectul, scrieți-o personal.