Stăpânirea stm32f103ve ecran LCD tactil TFT (partea 3)

Despre ecranul tactil nu este scris multe articole bune. Aici este una dintre ele. Comoditate modulelor moderne LCD din China este faptul că acestea au deja un controler, cum ar fi ADS7846 sau TSC2046, cu care comunica printr-un autobuz SPI.

Stăpânirea stm32f103ve ecran LCD tactil TFT (partea 3)

Într-un cuvânt, toate lucrările merge bine. Cele două straturi sunt închise, formând două rezistor pe axa X a două axe Y. Regulatorul este un multiplexor și ADC. comandă SPI vine pentru - măsurarea la axa X. Regulatorul X + se conectează la VCC, X la măsurile de la sol de tensiune pe linia Y + (sau Y-), și transmite din nou pe SPI. In mod similar se produce axa Y. contorizării

Deoarece există un schimb de date SPI? Deschideți fișa cu date TSC2046 - schimbul de date de 8 biți:

Stăpânirea stm32f103ve ecran LCD tactil TFT (partea 3)

Galben este desemnat pentru a trimite comenzi (cuvânt de control), albastru - ia 2 octeți de date (valoare de măsurare digitală). ADC poate funcționa în 12-biți sau modul de 8 biți. Se înțelege că un modul de 12 biți, rezoluția ecranului este mai mare, dar pentru o rezoluție a ecranului de 320 x 240 este suficient pentru un 8 biți să scadă (în mod ideal) în fiecare pixel. Eu folosesc toate același mod de 12 biți.

Stăpânirea stm32f103ve ecran LCD tactil TFT (partea 3)

Configurarea SPI pentru a lucra cu TSC2046:

SPI este acum gata. Scrieți o funcție pentru a trimite comenzi și pentru a primi date de la ADC:

SPI este de lucru într-un mod de date trimiterea și primirea simultane. Primul transport - cuvântul de control - echipa noastră (comanda) (Pomeroy pe axa X) - nimic (am ignora zerouri, care sunt derivate) la intrare. În a doua parte, nu trimitem (sau, mai degrabă, trimiterea de zerouri) și să ia octetul mare de date, trecerea-o la stânga. În al treilea - din nou, nimic nu este trimis (zerouri) și să accepte un octet scăzut. Apoi a reveni datele.

Pentru a obține valoarea axei X, în modul 12 biți, este necesar să se trimită comanda 0x98, și pentru Y 0xD8. Tabelul complet este în fișa de date. TSC2046 chiar știu cum să se măsoare forța tensiunii de presare și de alimentare.

Am scris o funcție de a obține X și Y:

În cazul în care i - numărul de măsurători. Este cunoscut faptul că, uneori, în derivă tensiunilor. Din acest motiv poate fi o valoare incorectă. Prin urmare, este posibil să se facă, de exemplu, 40 de măsurători și să ia valoarea medie. Dacă nu aveți nevoie pentru a măsura valoarea medie, măsurătoarea se execută 1 ora.

Acum am obținut coordonatele. În partea următoare considerăm modul în care să se ocupe de coordonatele în coordonatele reale ale ecranului și modul de a efectua calibrarea ecranului tactil.

După toate modificate prin acest algoritm, valorile au devenit stabile, mai plutească pe metoda de presare și forța de presare (staylus sau cu degetul).

Sunt în programul meu PENIRQ nu folosesc încă. Am descoperit că există o singură atingere, atunci când ambele coordonate încetează să mai fie zero. (De obicei, dacă nu atingi, atunci unul dintre ei - 0). Studiul merge continuu și alternativ. Poate că ar trebui să încercăm să lucrăm cu întrerupere, dar presat la CS 0 poate nu, acesta este conectat la controler pentru a ieși FSMC.

Deci, încercați pe un semnal de CS comanda 0xD8, și apoi punctele 1-4.