Ana Sayfa STM32F4 Discovery STM32F4 Discovery Dokunmatik Ekran Buton Uygulaması

STM32F4 Discovery Dokunmatik Ekran Buton Uygulaması

6 min read
3
0
5,865

Merhaba arkadaşlar,

STM32F4 Discovery ile dokunmatik ekran buton uygulaması ile karşınızdayız.Kullanmış olduğumuz dokunmatik ekran ve kütüphane ile ilgili daha önce sizlere bilgi vermiştik.Önceki bilgilere buradan erişebilirsiniz.

Bu uygulamamızda temel olarak yapmak istediğimiz şey,dokunmatik ekranda buton oluşturup,bu butonlarla boardumuzun üzerinde bulunan ledleri kontrol etmek istiyoruz.

Kodlar aşağıda belirtilmiştir.

[php]

#include "stm32f4xx.h"
#include "delay.h"
#include "SSD1289.h"
#include "touch_7846.h"
#include "Julija.h"
uint16_t Xpos;
uint16_t Ypos;
uint16_t a;
uint16_t Width;
uint16_t Height;
uint16_t Length;
uint16_t position;
uint8_t Direction;
u16 bktouch = 0;
u16 bk1touch = 0;
u16 bk2touch = 0;
GPIO_InitTypeDef GPIO_InitStructure;

void Delay(__IO uint32_t nCount);
void GPIO_Setup(void);
void GPIO_Setup(void)
{
/* GPIOD Clocku aktif hale getiriliyor… */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

/* PD12,PD13,PD14 ve PD15 çikis olarak ayarlaniyor. GPIO Bus hizi 100 MHz… */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
void LCD_DrawButton1(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height,int position)
{

LCD_SetTextColor(LGRAY); // Buton Arka Plan Rengi
LCD_DrawFullRect( Xpos, Ypos,Width,Height); // Koordinat tanimlamalari
// dikdörtgenin üst ve sol kenarina cizgi ciz
LCD_SetBackColor(LGRAY);
if(position==0)
LCD_SetTextColor(MAROON);
else LCD_SetTextColor(BLACK);
LCD_DrawLine( Xpos, Ypos, Width, LCD_DIR_HORIZONTAL);
LCD_DrawLine( Xpos, Ypos, Height, LCD_DIR_VERTICAL);
if(position!=0) LCD_SetTextColor(MAROON);
else LCD_SetTextColor(BLACK);
}
void LCD_DrawButton(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height,int position)
{
LCD_SetTextColor(DGRAY);
LCD_DrawFullRect( Xpos, Ypos,Width,Height);
// dikdörtgenin üst ve sol kenarina cizgi ciz
if(position==0) LCD_SetTextColor(WHITE);
else LCD_SetTextColor(BLACK);
LCD_DrawLine( Xpos, Ypos, Width, LCD_DIR_HORIZONTAL);
LCD_DrawLine( Xpos, Ypos, Height, LCD_DIR_VERTICAL);
if(position!=0) LCD_SetTextColor(DGRAY);
else LCD_SetTextColor(BLACK);
}

int main(void)
{
GPIO_Setup();
Delay(0x3FFFFF);
LCD_Init();
Delay(0x3FFFFF);
touch_init();
LCD_Clear(MAROON);
while(1)
{

LCD_StringLine(30, 70, "Hayat Paylasinca Guzel");
LCD_StringLine(50, 280, "www.roboturka.com");
LCD_StringLine(70, 250, "By Bilal Kaya");

if((short int)Pen_Point.X0>70 && (short int)Pen_Point.X0<170&& (short int)Pen_Point.Y0>120 &&
(short int)Pen_Point.Y0<170) {
if(bktouch==1) {
GPIO_SetBits(GPIOD, GPIO_Pin_13);
// LCD_DrawButton1(70,170,100,30,1);
LCD_CharSize(20);
LCD_SetTextColor(BLACK);
LCD_StringLine(90, 130, "BUTON 1");
// LCD_SetTextColor(GREEN);
// LCD_StringLine(18,200, "AKTIF");
bktouch=0;

}
}
else {
if(bktouch==0) {
GPIO_ResetBits(GPIOD, GPIO_Pin_13);
LCD_DrawButton1(70,120,100,50,0);
LCD_CharSize(16);
LCD_SetTextColor(BLACK);
LCD_StringLine(90, 140, "BUTON 1");
// LCD_SetTextColor(RED);
// LCD_StringLine(18, 200, "PASIF");
bktouch=1;

}
}
if((short int)Pen_Point.X0>70 && (short int)Pen_Point.X0<170&& (short int)Pen_Point.Y0>171 &&
(short int)Pen_Point.Y0<220) {
if(bk1touch==1) {
GPIO_SetBits(GPIOD, GPIO_Pin_12);
// LCD_DrawButton1(70,170,100,30,1);
LCD_CharSize(20);
LCD_SetTextColor(BLACK);
LCD_StringLine(90, 190, "BUTON 2");
// LCD_SetTextColor(GREEN);
// LCD_StringLine(18,200, "AKTIF");
bk1touch=0;

}
}
else {
if(bk1touch==0) {
LCD_DrawButton1(70,170,100,50,0);
LCD_CharSize(16);
LCD_SetTextColor(BLACK);
LCD_StringLine(90, 185, "BUTON 2");
bk1touch=1;
GPIO_ResetBits(GPIOD, GPIO_Pin_12);

}
}

Convert_Pos();
}
}

[/php]

Proje dosyalarına buradan ulaşabilirsiniz.

 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  STM32F4 Discovery

3 Yorumlar

  1. HÜSEYİN

    21 Mayıs 2016 at 17:02

    Merhabalar öncelikle çalışmalarınızdan ötürü teşekkür ediyorum bizi bilgilendirdiğiniz için , ben de benzer uygulamalar yapmak için gerekli malzemeleri edindim fakat tft ekranı bir türlü çalıştıramadım arduino due’de de kullandım fakat sonuç alamadım ekranın bozuk olmasından şüpheleniyorum sizin kullandığınız ekranın linkini gönderebilme imkanınız varmı . Teşekkür ederim.

    Reply

  2. Bilal Kaya

    22 Mayıs 2016 at 07:53

  3. emine

    2 Ekim 2016 at 13:58

    hy32d ekranı ile stm32 ile bağlantısını yükleyebilirmisiniz(baskı devresini )gecen yıl vardı fakat silinmiş

    Reply

Bilal Kaya için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Lazer İşleme Makinesi Yapımı

Merhaba arkadaşlar,bu projemizde sizlerle birlikte lazer işleme makinesi yapımını göreceği…