Bu proje, STM32F407-Discovery kartı üzerinde bir butonun durumunu okuyarak, bir LED'i doğrudan (anlık olarak) kontrol eden temel bir uygulamadır.
Bu depo, GPIO çevre biriminin Giriş (Input) ve Çıkış (Output) modlarının en yalın etkileşimini gösterir. Karmaşık algoritmalar veya diziler kullanılmadan, "Butona basarsan yanar, çekersen söner" mantığı işlenmiştir.
Uygulama, "Momentary Switch" (Yaylı Anahtar) mantığıyla çalışır. LED'in durumu, doğrudan butonun o anki fiziksel durumuna bağlıdır.
-
Bekleme Durumu (Buton Serbest):
- Dahili Pull-Up direnci pini 3.3V'a çeker (
SET). - Kod bunu algılar ve LED'i KAPALI tutar.
- Dahili Pull-Up direnci pini 3.3V'a çeker (
-
Aktif Durum (Butona Basılı):
- Buton, pini Toprağa (GND) çeker (
RESET). - Kod bunu algılar ve LED'i AÇIK tutar.
- Buton, pini Toprağa (GND) çeker (
Kodun düzgün çalışması için .ioc dosyasında buton pininin (PA0) Pull-Up olarak ayarlanması zorunludur.
- Pin Modu:
PA0->GPIO_Input - Pin Ayarı:
System Core > GPIO > PA0 - Pull-Up/Down:
Pull-upseçili olmalıdır.
(Not: Bu ayar yapılmazsa buton kararsız (floating) çalışır ve LED kendi kendine yanıp sönebilir.)
---
- 1x STM32F407-Discovery Geliştirme Kartı
- 1x LED (Kırmızı vb.)
- 1x 220 Ohm Direnç
- 1x Push-Button
- Breadboard ve Jumper Kablolar
Buton bağlantısı Pull-Up mantığına göre (GND'ye) yapılmalıdır.
| Bileşen | STM32 Pini | Bağlantı Detayı |
|---|---|---|
| Buton | PA0 |
Bir bacak PA0, diğer bacak GND |
| LED | PA1 |
Anot -> PA1, Katot -> Direnç -> GND |
- Bu depoyu klonlayın (
git clone ...). - STM32CubeIDE yazılımını açın.
File > Open Projects from File System...seçeneği ile proje klasörünü seçin.- Proje içindeki
.iocdosyasını açarak pin yapılandırmasını inceleyebilirsiniz. - Derleyin (Build) ve ST-Link V2 üzerinden kartınıza yükleyin (Run).