Овладяването stm32f103ve TFT LCD сензорен екран (част 3)
За сензорния екран не е писано много добри статии. Тук е един от тях. Удобство на съвременни китайски LCD модули е, че те вече имат контролер, като ADS7846 или TSC2046, с които можете да общувате върху SPI автобус.
С две думи, цялата работа върви на добре. Двата слоя са затворени, образувайки две резистор на X ос на две ос Y. Контролерът е мултиплексор и ADC. SPI команда идва за - измерване на оста X. Контролерът X + се свързва към VCC, X- до наземните мерки напрежението на линията Y + (или Y-), и го предава отново на SPI. По подобен начин се появява измерване ос Y.
Като има обмен на SPI данни? Open Data Sheet TSC2046 - 8-битов обмен на данни:
Жълт е определен за изпращане на команди (контрол на думи), синьо - вземи 2 байта данни (цифрова стойност измерване). ADC може да работи в 8-битов режим 12-битов или. Разбираемо е, че режим на 12-битов, резолюцията на екрана е по-висока, но за разделителна способност на екрана от 320 х 240 е достатъчно за 8-битова да падне (в идеалния случай) във всеки пиксел. Аз използвам всички същия режим на 12-битов.
Конфигуриране на SPI да работи с TSC2046:
SPI вече е готов. Напишете функция за изпращане на команди и получаване на данни от ADC:
SPI работи в режим на едновременно изпращане и получаване на данни. Първата пратка - контрол думата - нашият екип (команда) (Померой по оста X) - нищо (пренебрегваме нули, които са получени) на входа. Във втората част, ние не се изпраща (или по-скоро, изпращане нули) и вземете високо байт данни, той се измести наляво. В третата - отново нищо не се изпращат (нули) и го приемам ниско байт. След това се върнете на данните.
За да получите стойността на X ос в режим на 12-битов най-, е необходимо да изпратите команда 0x98, както и за Y 0xD8. Пълният таблицата е в информационния лист. TSC2046 дори знаят как да се измери силата на пресоване и захранващо напрежение.
Написах функция на придобиване на Х и Y:
Когато аз - броят на измерванията. Известно е, че понякога дрейф напрежения. Поради това може да е неправилна стойност. Поради това е възможно да се направи, например, 40 измервания и да вземе средната стойност. Ако не трябва да се измери средната стойност, измерването се извършва един път.
Сега сме получили координатите. В следващата част ще разгледаме как да се справят с координатите на реалните координати на екрана и как да извършите калибриране на сензорния екран.
В крайна сметка променя от този алгоритъм, стойностите са станали стабилни, вече плуват на метода на пресоване и притискащата сила (staylus или пръст).
Аз съм в моята програма PENIRQ все още не се използва. Аз откривам, че има връзка, когато и двете координати престанат да бъде нула. (Обикновено, ако не докоснете, след което един от тях - 0). Проучването продължава непрекъснато и последователно. Може би трябва да се опитаме да работим с прекъсването, но притисна към CS 0 не може да е свързан с контролера, за да FSMC изход.
Така че да я изпробвате на сигнал CS командва 0xD8 и след 1-4 точки.