STM32F407VG Discovery Button'a Start Ayarlama

Başlatan icais, 16 Aralık 2013, 22:47:33

icais

Merhabalar

Yapmak istediğim şey aşağıda bulunan LCD ye Yazı yazma kodunu doğrudan LCD de göstermek yerine üzerinde bulunan butonlara basınca göstermesi, Butonlara basılmadığı sürece herhangi bir yazı yazmaması.

Siyah buton reset için
Mavi buton yazıyı yazdırmak için kullanılacak olursa aşağıdaki koda nasıl bir ekleme yapmak gerekir?

Kodun indirildiği blog: http://baef.blogspot.com/2013/03/stm32f4-discovery-ile-2x16-lcd-surme.html

// LCD BAĞLANTILARI
sbit LCD_RS at GPIOA_ODR.B2;
sbit LCD_EN at GPIOA_ODR.B3;
sbit LCD_D4 at GPIOA_ODR.B4;
sbit LCD_D5 at GPIOA_ODR.B5;
sbit LCD_D6 at GPIOA_ODR.B6;
sbit LCD_D7 at GPIOA_ODR.B7;


sbit LCD_RS_Direction at GPIOA_ODR.B2;
sbit LCD_EN_Direction at GPIOA_ODR.B3;
sbit LCD_D4_Direction at GPIOA_ODR.B4;
sbit LCD_D5_Direction at GPIOA_ODR.B5;
sbit LCD_D6_Direction at GPIOA_ODR.B6;
sbit LCD_D7_Direction at GPIOA_ODR.B7;


char txt1[] = "EFKAN EFE";
char txt2[] = "BAHADIR COKDILLI";

void Move_Delay() {                  // Metni taşıma için kullanılan Fonksiyon
  Delay_ms(750);                     // Metnin yazma hızı
}



void main() {

RCC_AHB1ENR|=0x00000001;//A  portuna clock veriliyor.
GPIOA_GPIOB_OSPEEDR=0;//giriş çıkış hızları en düşükte (2MHZ)
GPIOA_MODER=0x00000000;//
GPIOB_MODER=0x00000000;//
GPIOB_ODR=0x00000000;//

Lcd_Init();                        // LCD Yazmaya Hazırlama
Lcd_Cmd(_LCD_CLEAR);               // Ekran Temizleme
Lcd_Cmd(_LCD_CURSOR_OFF);          // İmleci Kapat
Lcd_Cmd(_LCD_CLEAR);               // Ekran Temizleme

Lcd_Out(1,1,txt1);                 // 1. text 'i 1. satıra yaz
Lcd_Out(2,1,txt2);                 // 2. text 'i 2. satıra yaz

Delay_ms(2000);


}

sseedat

merhaba şöyle yapabilirsin

// LCD BAĞLANTILARI
sbit LCD_RS at GPIOA_ODR.B2;
sbit LCD_EN at GPIOA_ODR.B3;
sbit LCD_D4 at GPIOA_ODR.B4;
sbit LCD_D5 at GPIOA_ODR.B5;
sbit LCD_D6 at GPIOA_ODR.B6;
sbit LCD_D7 at GPIOA_ODR.B7;


sbit LCD_RS_Direction at GPIOA_ODR.B2;
sbit LCD_EN_Direction at GPIOA_ODR.B3;
sbit LCD_D4_Direction at GPIOA_ODR.B4;
sbit LCD_D5_Direction at GPIOA_ODR.B5;
sbit LCD_D6_Direction at GPIOA_ODR.B6;
sbit LCD_D7_Direction at GPIOA_ODR.B7;


char txt1[] = "EFKAN EFE";
char txt2[] = "BAHADIR COKDILLI";

void Move_Delay() {                  // Metni taşıma için kullanılan Fonksiyon
  Delay_ms(750);                     // Metnin yazma hızı
}



void main() {

RCC_AHB1ENR|=0x00000001;//A  portuna clock veriliyor.
GPIOA_GPIOB_OSPEEDR=0;//giriş çıkış hızları en düşükte (2MHZ)
GPIOA_MODER=0x00000000;//
GPIOB_MODER=0x00000000;//
GPIOB_ODR=0x00000000;//

Lcd_Init();                        // LCD Yazmaya Hazırlama
Lcd_Cmd(_LCD_CLEAR);               // Ekran Temizleme
Lcd_Cmd(_LCD_CURSOR_OFF);          // İmleci Kapat
Lcd_Cmd(_LCD_CLEAR);               // Ekran Temizleme

Delay_ms(2000);
while(1)
{
  if(GPIOA->IDR & 0x01)
{
  Lcd_Out(1,1,txt1);                 // 1. text 'i 1. satıra yaz
  Lcd_Out(2,1,txt2);                 // 2. text 'i 2. satıra yaz
while(GPIOA->IDR & 0x01);
}
Lcd_Cmd(_LCD_CLEAR);               // Ekran Temizleme

}

}
Görünmez bir mezarlıktır Zaman...

icais