Stm32f4 Discovery 3.2″ TFT LCD SÜRME

Merhaba arkadaşlar ;

Uzun bir aradan sonra yeni bir yazıyla beraberiz. Bu zamana zarfı içerisinde aktif bir hayat yanında Çin den sipariş ettiğim 3.2″ ssd1289 tft lcd  panelim geldi ve hemen başladım kurcalamaya.Elimde Nokia 5110 Ericcson t628 sonra yine nokia nın bir modeli ama bende bilmıyorum kamera modul ve renklı ekranı vardı ama işimizin kolay ilerlemesi ve stm32 de fsmc yapısını ögrenmek maksadıyla hazır bir panel kullanmanın daha iyi olucağını düsündum.

Cunku lcd uzerınde headerlar hazır sızın yapmanız gereken sadece pın connecting ve ssd1289 library bulmak :). Bu fıkır aklıma nereden geldi diye sorarsanız ilk olarak ekran ararken element14 deki hy32d tft uygulmasını gördum ve fıyatının uygun olması ıcabıyla kafamda bir ampul yandı 🙂 Siparişim geldikten sonra yine aynı şekilde buradaki yollarla ılerleyıp kodlamalarımı yaptım ve fsmc yapısını inceleme sansım oldu. Element 14 deki anlatım ve örnek kodlar ıcın buraya tıklayabilirsiniz.

Benım kullandıgım Lcd buradakıne göre biraz daha farklı ek olarak sd card yuvası var ve touch panel için entegresi xpt2046 kullanılmıs gerci ads7843 ile hiç bir farkı yok aynı kutuphanede surulebilirler.

Benim sipariş ettiğim lcd nin linki burada

LCD mın fotosu ve arkasında bulunan pin baglantılar bu şekilde verilmiş bende buna göre baglantılarımı söyle yaptımGörsel

LCD pin name STM32F4 Pin number STM32F4 pin name
D0 61 PD14
D1 62 PD15
D2 81 PD0
D3 82 PD1
D4 38 PE7
D5 39 PE8
D6 40 PE9
D7 41 PE10
D8 42 PE11
D9 43 PE12
D10 44 PE13
D11 45 PE14
D12 46 PE15
D13 55 PD8
D14 56 PD9
D15 57 PD10
CS 88 PD7   (NE1)
RS 60 PD11 (FSMC-A16)
RD 85 PD4   (NOE)
WR 86 PD5   (NWE)
RESET NRST
TP_IRQ PD6
TP_SCK 52 PB13
TP_SI 54 PB15
TP_SO 53 PB14
TP_CS 51 PB12

Pın baglantılarını yaparken en cok zorlandıgım nokta bende extra olarak sd card olması ve burada mosı mıso bacaklarının kullanımı karıstrmam oldu Mosı(input) Miso(output) olark yaptıgımda sorunu çözmüş oldum. Suan hala sd card baglantılarını yapmadım MP3 örneğimizde onuda vericem.

Arkadaşlar sizlere yasadıgım başka bir sorunuda söylemek istiyorum.Internet uzerınde bircok TFT lcd nıze uyumlu proje kodları bulabılırsınız fakat bunları debug etmenız sorun olabilir.Ben resim basarken aldıgım hatayla dunyam basıma yıkıldı. 7000 satırı askın ascıı kodunu kite gömmek için malum lisasnlı bir arayuzunuzun olması gerekiyor.ben Atollic kullandıgım ıcın 32kb free surum bana yetmedı ve kodumu debug edemedım sadece rgb renk uygulamaları ve font uygulamalarını yapabildim.Atollic de yaptıgım uygulamalarım

Görsel

Görsel

Gördugunuz üzere böyle bır modul aldıgınızda bu kadarıyla yetınmek istemiyorsunuz. Oyuzden keil uvision kullanmaya karar verdim ve lisans kodlarını sagolsunlar forumlardan bulabildim.4.70 ıcın bulabılırsınız.

Ben calısmamı kolaylastırmak ıcın bir modul hazırlamayı dusundum ve arkadasım Hasan Kara bu konuda cok yardımcı oldu kablo baglantılarıyla ugrasmaktan kurtardı beni ve söyle basit bir kart yaptık

Görsel

Belki aralarda atladıgım cok sey var arkadaslar ama buraya kadar işin hikaye kısmıydı zaten uzun bir zamanımı aldı bunları yapmak ve hatırladıgım kadarıyla karsılastıgım sorunları sizlere aktarmaya calıstım. Sunuda söylemeden gecemıcem. Atollic kullanan arkadaslarımız emınım keil ile cok zorlanıcaklar ama istersenız eclipse ortamında uzantınızı keil olarak secıpde yapabılırsınız böyle bir secenekte var deneyebilirisniz yaparsanız banada anlatın lutfen 🙂

Keil ilk proje olusturma için ben buradakı arkdasımızın yazısından faydalandım tesekkurler 🙂

Dedıgım buraya kadar hep hıkaye kısmıydı işin artık su LCD nedir bi ögrenelım 🙂

Gunumuzde farkında olmasak dahi heryerde karşımıza cıkan bu ürün çok kullanışlı ucuz ve dayanaklıdır.Son günlerdeki dokunmatik tabletler, bilgisayarlar, telefonlar,intercom cihazları endustrıyel kontrol panolar… vs gibi konularda artan arz üzerine kullanımı yaygınlaşan bu ekranlar ve dokunmatik teknolojisi kullanışlı oldugu kadar hızlı işlemler yapmamıza bizleri yıllardan süregelen tuşlandırmaya bir son vermektedir.Bu gelişmeler sayesınde yeni işletim sistemleri üretilmiş halı hazırda olan işletim sistemleride bu duruma uygun hale getirilmeye başlanmıştır(android,windows 8… ). Elimizde ki işlemcinin bizlere sağlamış oldugu bu özelliği kullanarak ilk projemi yaptım ve bundan öncesinde ise sizlere TFT teknlojisi hakkında yaptıgım araştırmalardan derlediğim yazıları sunmak istiyorum.

LCD-TFT Ekranların Tarihçesi 

Kayıtlara göre; likit kristal dünyada ilk olarak Avusturyalı bir botanist olan Fredreich Rheinizer tarafından 1888 yılında keşfedildi. İnsanlığın, bu keşfin teknoloji için nedenli yeni ufuklar açabileceğinden habersiz olması nedeni ile uzun yıllar sürüncemede kalmasına rağmen teknolojinin diğer uzuvlarına nispetle oldukça ağır gelişim göstermiştir.
Likit kristal, çok basit olarak; sabun köpüğü gibi ne tam katı ne de tam sıvı halde bulunan, kendine özgü bir yapı olarak tarif edilebilir.
Keşfinden yaklaşık 80 yıl sonra, 1960’lı yılların ortalarına doğru, bilim adamları, elektriksel bir yük uygulaması altında, likit kristalin içerisinden geçirilmekte olan ışığın özelliklerini değişime uğrattığını gösterince, birden bu özel solüsyonun yıldızı parlayıverdi.
1960’lı yılların sonlarına gelindiğinde, artık likit kristal teknoloji ile görüntü oluşturma denemelerinin ilk prototipleri ile insanlık tanışmıştı. Ancak; bu ürünler, likit kristalin elektrikle kontrolündeki henüz mevcut bilinmezler nedeni ile sabit ve kesin sonuçlar vermiyorlardı.
Tahmin edeceğiniz gibi; bilinmezlere uzun süreli tahammül gücü bulunmayan insanoğlu, bu engeli İngiliz bir araştırmacının çalışmaları sonucunda kısa sürede aştı.

TFT-LCD monitör nedir?

LCD’nin açılımı Liquid Crystal Displaydir. TFT-LCD monitörlerde ana teknoloji sıvı kristallerdir. Bu kristaller ışığın geçişini engeller ya da ışığı serbest bırakır. TFT ise Thin Film Transistordur. Bu teknoloji Active Matrix olarak da geçer. TFT’lerde pikseller transistörler ile denetlenir. Aktif denmesi bu yüzdendir. Bugün TFT tekniğinin kullanıldığı LCD monitörler standart durumdadır.

LCD’lerde renkli pikseller yaratabilmek için renk filtrelerine ihtiyaç duyulur bunlar RGB yani Red Green Blue renk filtreleridir. Pikseller bu 3 alt pikselden oluşur ve bu alt piksellere transistor ler tarafından uygulanan akım ile her alt pikselin ışık miktarı değiştirilir. Sonuçta ise her 3 alt piksel 256 değişik tonlama yapabilir.

Yani 256 kırmızı x 256 yeşil x 256 mavi= 16777216 yuvarlarsak 16.8 milyon renk yapıyor. Diğer adıyla 24 bit. TFT’lerde pikseller transistor ler ile kontrol ediliyor. Bunu da en iyi şu şekilde açıklayabiliriz.

1024×768 çözünürlüğünü ele alalım. 1024 kolon ile 768 sıranın çarpımını alt piksel sayısı olan 3 ile çarpalım. Sonuç 2.359.296 çıkar. Bu sayı 1024×768 çözünürlük destekleyen bir TFT LCD’de görüntü elde edebilmek için kullanılan transistor sayısıdır! Çözünürlük arttıkça transistor sayısı da artıyor doğal olarak. Bunun yarattığı en büyük problem ise üretim sırasında bozuk transistor kullanılmasıdır. Transistor sayısı bu kadar fazla olunca hata payı da artıyor. Bu olay ölü piksel olarak da adlandırılır. Ölü piksel ya hiç ışıklandırılmaz ya da sürekli aydınlık olur. Sayısı fazla olursa rahatsız edicidir. TFT LCD monitörlerin fiyatlarının yüksek olmasında ölü piksellerin de rolü vardır. Çünkü fazla sayıda ölü pikselli üretilmiş bir monitör satılamayacağından o monitörden kar edilemez tabii bu sebepten ortaya çıkan zarar sağlam monitörlerin fiyatlarına eklenerek telafi edilmeye çalışılır.

TFT LCD’lerin çalışma mantığını özetleyelim. Arkadan aydınlatmalı TFT LCD monitörlerde ışık RGB filtrelenine gelir. Transistorlar filtrelere voltaj vererek buradaki sıvı kristallerin açılarını değiştirir ve ışığın nasıl yansıtılacağını ya da yansıtılmayacağı belirlenir. Örneğin Sıvı kristaller ışığı tutar ve geçirmezse siyah elde ederiz. Burada önemli bir nokta ışığın hiç bir zaman sönmediğidir.

CRT (Cathode Ray Tube) monitörlerde ise ekranda fosfor noktaları vardır ve bu noktalar elektron tabancaları ile yatay olarak soldan sağa doğru taranır ve fosforlar aydınlatılır. Bu tabancalar ekrana belli bir mesafede durmak zorundadır ve arkaya doğru uzanırlar. Bu nedenle CRT monitörler LCD’lere kıyasla daha büyük olurlar. Bu tarama işlemi saniyede 85 kereden az olduğunda titreme görürüz. Bu titreme tarama yapılırken ışığın çok kısa bir süre sönmesinden kaynaklanır. Tazeleme oranı 85Hz üstünde ise bunu hissetmeyiz. LCD’lerde ışık hiç sönmediğinden böyle bir titreme sorunu olmaz. Ayrıca ışık düz bir doğrultu izlediğinden TFT-LCD’lere yandan bakılınca daha doğrusu karşısından bakmadığınızda görüntü bozulur. Bunun önüne geçmek için çeşitli yollar vardır. En çok uygulananı TN (twisted Nematic)+film tekniğidir. Bu teknik ile bakış açısı 140 dereceye kadar çıkabiliyor.

Teknik olarak TFT LCD’lerin çalışması bu şekildedir. CRT’lerden epey farklı gördüğünüz gibi.

LCD TFT Nasıl Çalışır ?

Günümüzün LCD televizyon ve monitörleri, yapıları açısından incelendiğinde, adeta bir sandwich gibi, üst üste katmanların bir araya getirilmesinde oluşur.
TFT, “Thin Film Transistör” kelimelerinin, LCD ise “Liquid Cyristal Display” kelimelerinin baş harflerinin yan yana getirilmesinden türetilmiş kısaltmalardır.
Yine çok yalın olarak; iki cam levhanın arasında doldurularak sıkıştırılmış likit kristalden oluşur.
Diğer görüntü birimlerinden bildiğiniz gibi; görüntünün en küçük bileşeni olan ve görüntüyü oluşturan noktacık olarak tarif edilebilecek “piksel” kavramı LCD monitörler için de geçerlidir. TFT LCD ekranda, her bir pikselin oluşumundan sorumlu bir TFT (transistör yapı) hücresi bulunur. Bu hücreler TFT cam katmanında dizilmişlerdir. Aynı şekilde; piksellere rengi veren bir renk filtresi yapısı da cam filtre üzerinde oluşturulmuş durumdadır. Bu iki tabaka arasında sıkıştırılmış likit kristaller, TFT cam ile renk filtre camı arasında oluşturulan voltaj (gerilim) farkına bağlı olarak yer değiştirirler. Zemine uygulanan ışık süzmesinin büyüklüğü ise likit kristallerin yer değişimlerine göre belirlenir. Böylece istenen renk yapısına ulaşılmış olur.

TFT-LCD’lerin Avantaj ve Dezavantajları

TFT-LCD’ler ince yapılarından dolayı hem yer kazancı sağlarlar hem de hafif olduklarından taşıması kolaydır. CRT’ler LCD’ler yanında epey hantal kalır. LCD’lerde görüntü daha parlaktır. Bu hemen fark edilir. TFT LCD’lerde görüntünün titremesi mümkün değildir. CRT’lerde gözünüz yorulabilir tabii monitörün kalitesi de bunda etkili. Kısacası LCD’lerde 75Hz sayısını gördüğünüzde gözlerinizin yorulacağını düşünmeyin, CRT 75HZ’de yorar ama LCD yormaz. LCD’lerde geometri problemi yoktur. Forumlarda okumuşsunuzdur düz ekran monitör aldım ama görüntüyü ekrana oturtamadım şikayetleri olur hep. LCD’de böyle bir sorun yok. Görüntü ekrana tam oturur. Bunun önemli bir sonucu var. Monitör satın alırken LCD ve CRT’ler boyut olarak kıyaslanır. 15” LCD alacağıma 17” CRT alırım diyenler var. Acı gerçek şu ki 17” bir CRT monitörün görülebilir alanı daha küçüktür. LCD’de ise görüntü kaybı olmadığından böyle bir sorun yok. Dolayısıyla 15” bir LCD görülebilir alan olarak 17” bir CRT’ye eşittir. 17” bir LCD’yi de 19” bir CRT ile kıyaslamak mümkün. Ben bunu inceleme sırasında yaşadık. 17” LCD ile 17” Samsung 757DFX monitörümü yanyana çalıştırdık ve LCD’nin görüntüsü bariz daha büyük olduğunu gördük. Tabii Samsung kasa olarak daha büyük ama görülebilir alan bariz daha ufaktı. Bu avantajın hemen arkasından bir dezavantaj geliyor. Eğer bir LCD en fazla 1024×768 çözünürlük destekliyorsa en net görüntüyü bu çözünürlükte alırsınız. Çünkü o monitör 1024×768 piksele sahiptir. Bu durumda 800×600 kullanmak isterseniz görüntünün 1024×768 piksele oranlanması gerekir. CRT’de böyle bir sorun yok. Ama 1024×768 LCD’de enterpolasyon sonucu 800×600 ya da 640×480 çözünürlükte görüntü netliğini kaybeder. 1280×1024 monitörde 1024×768 de kötü görünür. Yani eğer düzgün görüntü elde etmek istiyorsanız LCD monitörü maksimum çözünürlüğünde kullanmalısınız.

Günümüzün modern LCD monitörlerinde tepki süresi 30ms’dir. Bu orana sahip bir LCD monitör (1:0,030) saniyede 33 kare gösterebilir. 25 kare saniyeyi insan gözü için sınır kabul edersek DVD izlerken problem yaşamayacağız demektir. Fakat oyunları 100 FPS’de oynuyorsanız tearing efekti olacaktır ve hızlı hareketlerde flu bir görüntü oluşacaktır.

LCD monitörlerin bir avantajı da birçoğunun artık bugün yeni ekran kartlarında standart halini alan DVI çıkışını desteklemesi. Bu sayede dijital bağlantı kullanabiliyorsunuz. Sinyal kaybı olmuyor. Detay ayarlarla uğraşmıyorsunuz, kendiliğinden ayarlanıyorlar. Söyleyeceğim son ve bence Türkiye gibi elektriğin çok pahalı olduğu bir ülkede önemli bir avantaj var. LCD’ler CRT’lerin üçte biri kadar daha az enerji tüketiyor.

Şimdi kısaca avantajları ve dezavantajları listeleyelim:

Avantajlar:
1- Güç tüketimi az
2- Titreme yok, göz yormuyor
3- Geometri problemi yok
4- Parlak ve net görüntü
5- Hafif ve az yer kaplıyor
6- Görülebilir alan kaybı yok
7- Dijital bağlantı yapılabiliyor

TFT LCD ve bu teknolıjıden kısaca bahsettıkten sonra kısaca da fsmc yapısından bahsedelım.

Flexible static memory controller (FSMC)

FSMC blok senkron ve asenkron  bilgileri ve 16 bit arayüz ile yapabiliyor –
Ana amacı
● Uygun harici cihaz protokolü içine AHB işlemleri Çevir
● harici cihazların erişim zamanlama gereksinimlerini karşılamak
Tüm dış anılar kumanda ile adresleri, veri ve kontrol sinyalleri paylaşır.
Her harici cihaz benzersiz bir fiş seçin ile erişilebilir.FSMC harici bir aygıta tek seferde erişimi saglarmıs 🙂

Referance manueldende gördugumuz uzere özellikleri tek tek yazmadım

Görsel

4 ana baslık halınde ifadeyle fsmc yapısının yaptıgı

● The AHB interface (including the FSMC configuration registers)

● The NOR Flash/PSRAM controller

● The NAND Flash/PC Card controller

● The external device interface

Görsel

Genel işlemlerin altıldığı bölüm

 

The requested AHB transaction data size can be 8-, 16- or 32-bit wide whereas the

accessed external device has a fixed data width. This may lead to inconsistent transfers.

Therefore, some simple transaction rules must be followed:

AHB transaction size and memory data size are equal

There is no issue in this case.

AHB transaction size is greater than the memory size

In this case, the FSMC splits the AHB transaction into smaller consecutive memory

accesses in order to meet the external data width.

AHB transaction size is smaller than the memory size

Asynchronous transfers may or not be consistent depending on the type of external

device.

– Asynchronous accesses to devices that have the byte select feature (SRAM,

ROM, PSRAM).

a) FSMC allows write transactions accessing the right data through its byte lanes

NBL[1:0]

b) Read transactions are allowed (the controller reads the entire memory word

and uses the needed byte only). The NBL[1:0] are always kept low during read

transactions.

– Asynchronous accesses to devices that do not have the byte select feature (NOR

and NAND Flash 16-bit).

This situation occurs when a byte access is requested to a 16-bit wide Flash

memory. Clearly, the device cannot be accessed in byte mode (only 16-bit words

can be read from/written to the Flash memory) therefore:

a) Write transactions are not allowed

b) Read transactions are allowed (the controller reads the entire 16-bit memory word

and uses the needed byte only).

NOR Flash/PSRAM controller

The FSMC generates the appropriate signal timings to drive the following types of

memories:

● Asynchronous SRAM and ROM

– 8-bit

– 16-bit

– 32-bit

● PSRAM (Cellular RAM)

– Asynchronous mode

– Burst mode

– Multiplexed or nonmultiplexed

● NOR Flash

– Asynchronous mode or burst mode

– Multiplexed or nonmultiplexed

The FSMC outputs a unique chip select signal NE[4:1] per bank. All the other signals

(addresses, data and control) are shared.

For synchronous accesses, the FSMC issues the clock (CLK) to the selected external

device. This clock is a submultiple of the HCLK clock. The size of each bank is fixed and

equal to 64 Mbytes.

Each bank is configured by means of dedicated registers (see Section 31.5.6).

The programmable memory parameters include access timings (see Table 167) and support

for wait management (for PSRAM and NOR Flash accessed in burst mode).

General timing rules

Signals synchronization

● All controller output signals change on the rising edge of the internal clock (HCLK)

● In synchronous read and write mode, the output data changes on the falling edge of the

memory clock (FSMC_CLK)

(tam bir çeviri yapıcak zamanı bulamadıgım için direk kaynak olarak verdim arkadaşlar zaten datasheet okumaya alıştıysanız rahatlıkla anlayabiliyorsunuz.)

Flexible Static Memort Controller FSMC yapısından kısaca bahsettikten sonra artık kafamızda nasıl bir yol izleyecegımız hakkında fıkırler oturmaya baslamıstır dıye dusunuyorum. Sımdı artık tek yapmanız gereken yukarıda verdıgım element14 dekı kodları ıncelemek olsun orada touch ve ssd1289 ıcın yazılmıs kutuphaneler bulunmakta ileriki yazılarda ssd1289 ve xpt2046 ıcın yazılan kutuphanlerden bahsedecegım bu yazımız cok uzun olmaya basladı sizleride sıkmadan ilk örnek main dosyamın kodlarını sizlerle paylasayım 🙂

main.c

#include "stm32f4xx.h"
#include "delay.h"
#include "tft_lcd.h"
#include "touch.h"
//#include "Julija.h"
void tft_yaz(void);
extern unsigned int xxx,yyy;
extern unsigned char flag;
extern u8 gImage_RES[];
extern u8 gImage_logo[];
extern u8 gImage_NKU[];
extern u8 gImage_gs[];
int main(void)
{
 Delay(0x3FFFFF);
 LCD_Init();
 Delay(0x3FFFFF);
 LCD_Clear(BLUE);
 LCD_SetTextColor(GREEN);

 LCD_SetDisplayWindow(0, 0, 239, 319);
//int i = 1;
 while(1)
 {
 //LCD_WriteBMP(239,319 , 240, 320, gImage_gs);
 //Delay(5000000);
 tft_yaz();
 Delay(5000000);
 CD_Clear(BLUE);
 Delay(0x3FFFFF);
 CD_WriteBMP(110,290 ,100 ,100, gImage_logo);
 Delay(5000000);
 LCD_WriteBMP(230,290 ,100 ,100, gImage_NKU);
 Delay(5000000);
 // LCD_Clear(RED);
 // tft_yaz();
 // Delay(5000000);
 // LCD_Clear(GREEN);
 // tft_yaz();
 // Delay(5000000);
 // LCD_Clear(LCD_COLOR_YELLOW);
 // tft_yaz();
 // Delay(5000000);
}
}
void tft_yaz(void)
{
 LCD_SetTextColor(GREEN);
LCD_SetBackColor(LCD_COLOR_BLUE);
 LCD_BackLight(100);
 LCD_StringLine(100,30, "Kaan");
 LCD_StringLine(85,45, "Kandemir");
 LCD_StringLine(30,80,"NAMIK KEMAL UNIVERSITESI");
 LCD_StringLine(15,100,"CORLU MUHENDISLIK FAKULTESI");
 LCD_StringLine(8,125,"ELEKTRONIK VE HABERLESME MUH.");
 LCD_StringLine(45,150,"KEIL UVISION 4.70");
 LCD_StringLine(55,170,"SSD1289+XPT2046");
}
 
uint16_t EVAL_AUDIO_GetSampleCallBack(void)
{
 return 0; // ses çipini kullaniyorsaniz tek sample veriyi burada return ile döndürün.
}
void EVAL_AUDIO_TransferComplete_CallBack(uint32_t pBuffer, uint32_t Size)
{
 return; // ses çipini kullaniyorsaniz burada çipe veri aktarimi DMA sona ermis
}

yukarıdaki kodu bi sefer anlamanız ımkansız arkadaslar eger ki ssd1289 ve ads7843 kutuphanelerını ıncelemedıysenız. Sizlere tavsıyem bu kodları ınceleyin yukarıda yazdıklarımın hakkında kolayca fıkır yurutebılırsınız.

İlk olarak yapmam gerekeni sona bıraktım özür dilerim. LCD modulu aldıgım ilk gunden bu yana benden yardımlarını esırgemeyen http://www.yepyeniprojeler.com Ahmet hocam a Bülent Sertel hocam a ve picproje uyelerını cok tesekkur ediyorum.

Yazımız uzun oldugu için teknik kısmından pek bahsedemedım arkadaslar ileride vakıt olursa daha ayrıntılı bir şekilde anlatıcam inşallah şimdilik benden bu kadar herkese kolay gelsin iyi çalışmalar. Sorunuz olursa yorum atarak sorabilirsiniz.

20130504_183918

Son olarakda yaptıgım ılk uygulamanın videosu youtube kanalımnda daha fazlasını bulabilirsiniz.

Stm32f4 Discovery Ssd1289 TFT lcd RGB and Font

Stm32f4 Discovery Ssd1289 TFT lcd Touch (Xpt2046) Example

18 thoughts on “Stm32f4 Discovery 3.2″ TFT LCD SÜRME

  1. merhaba,

    uygulama kodlarını gönderebilirmisiniz.Hex dosyasını oluşturamadım bir türlü

    teşekkürler

    • Gerekli dökümantasyonu yazı içerisinde verdim dikkatli okursanız LCD librarylerine ulaşabilceğiniz open source bir link mevcut. Fakat o kodlarla çalıştıramazsanız size kendimin modifiyeli LCD kodlarını gönderebilirim. İyi çalışmalar

      • Merhabalar,

        STM32F10x serisi bir kartım daha var, üzerinde gelen HY32D lcdyi kart ile kullanabiliyorum ama onun üzerindeki lcdnin kütüphane dosyalarını Keil 4.72 üzerinde (SSD1289 kontrolör için) STM32F4 ile çalıştıramadım, sizdeki kütüphane dosyalarını ve ya örnek projeyi oak1982@hotmail.com adresine gönderebilirseniz müteşekkir olurum. İyi çalışmalar.

      • Hocam bana da gönderebilir misin ya libraryler çok karışık internetteki. Sendekileri yollasan çok makbule geçer

  2. Merhaba
    Ekranda bir buton oluşturup tıklama sayısını ekranda gösteren ve bir değişkende tutan uygulama yapmak istiyorum bu lcd ile mümkün müdür nasıl bir yol izlemeli fikrin var mı kaan hocam.

  3. Tabiki mümkün öncelikle butonunuzu koyucanız bölgeyi ayarların pixel olarak daha sonra o pixeller üzerinde dokunma geldiğinde herhangi bir değişkene atayın ve artmasını söylemeniz yeterli olucaktır. mesela burada while 1 içinde dokunma bekleyen bir ekranımız var
    while(1)
    {
    BASA :
    Read_Ads7846();

    if(flag==1)
    {
    flag=0;

    x1=xxx;
    x2=x1/7.666666667;
    // x2=x1/5.609375;
    x2=x2-13;
    x1=x2;

    y1=yyy;
    y2=y1/5.609375;
    // y2=y1/7.666666667 ;
    y2=y2-20;
    y1=y2 ;
    }

    if ((x1>200) && (x1304) && (y1215) && (x1304) && (y10) && (y1<10) && (x10) && (y1>0))
    {
    Pixel(x1,y1,BLUE);
    Pixel(x1+1,y1,BLUE);
    Pixel(x1,y1+1,BLUE);
    Pixel(x1+1,y1+1,BLUE);
    }

    }
    }

    sizin aradıgınıza örnek olarak ekranı silme butonu koymustuk buraya sizde bunun gibi bir örnek yapıp ekranı sildirmez sayıcınızını arttırısınız

    // Ekran silme fonksiyonu .
    if ((x1>215) && (x1304) && (y1<320))
    {
    LCD_SetDisplayWindow(0, 0, 239, 319);
    LCD_Clear(BLACK);
    LCD_BackLight(100);
    LCD_WriteBMP(239,319 , 15, 16, gImage_logo);
    goto BASA ;
    }

    Umarım yardımcı olabilimişimdir Kolay gelsin

  4. merhabalar ssd1289 ile ekran’a resim basmaya çalısıyorum fakat resim bozuk cıkıyor sizin kullandığınız kütüphane dosyasını paylasabilir misiniz acaba? sorun kütüphane dosyasında sanırım resim bozuk olarak cıkıyor.

    • kullandıgınız resim boyutunu ve çevirmek istediğiniz bit sayısını nasıl yapıoyrsunuz ? 24 bit true color ve 4096 seçeneklerinde oluşturmayı denediniz mi ? birde Img2LCD kullanıyorsunuz değil mi ?

  5. Merhaba, bir ders ödevi için st32 kiti ile yaklaşık 20 adet ledi yakıp söndürmem gerekiyor. Pinlere lehim yapmadan nasıl bağlantı yapabilirim, fikriniz var mı? harddisk konnektörü gibi bir şey olsa çok hoş olurdu.

  6. merhaba,öncelikle paylaşımın ve bilgilendirmen için çok teşekkür ederim.burada verdiğin kodlarla yaptığım çalışmada iki tane sorunla karşılaştım.bunlardan birisi ekrana bilgileri bastığımda tersten çıkması,diğeri de touch screen ile ilgili main dosyasını bulamadım.yardımcı olabilirsen sevinirim.başarılarının devamını diliyorum iyi çalışmalar

Yorum bırakın