Bu proje, STM32F407-Discovery kartı üzerinde bir butona basıldığında LED'in durumunu tersine çeviren (AÇIK ise KAPALI, KAPALI ise AÇIK yapan) bir uygulamadır.
Bu depo, HAL_GPIO_TogglePin fonksiyonunun kullanımını ve yaylı (momentary) bir butonu, yazılımsal olarak kalıcı bir anahtara (latching switch) dönüştürme mantığını gösterir.
Bu uygulamanın temel amacı, LED'in mevcut durumunu hafızada tutmak ve her buton basımında bu durumu değiştirmektir.
- Algılama: Butona basıldığı (
RESET) tespit edilir. - Toggle (Tersleme):
HAL_GPIO_TogglePinkomutu ile pin1ise0,0ise1yapılır. - Bekleme (Rate Limiting): İşlemden sonra
HAL_Delay(2000)ile 2 saniye beklenir.- Neden Bekliyoruz? Mikrodenetleyici çok hızlıdır. Eğer bu bekleme olmazsa, siz butona "bir kere" bastığınızı sanırken, kod binlerce kez çalışıp LED'i gözle görülmeyecek hızda yakıp söndürebilir. Bu bekleme, her basışın tek bir işlem yapmasını garanti altına alır.
Projenin düzgün çalışması için .ioc dosyasında buton pininin (PA0) Pull-Up olarak ayarlanması gereklidir (Önceki buton projeleriyle aynı).
- Pin:
PA0->GPIO_Input - Resistor:
Pull-up
- 1x STM32F407-Discovery Geliştirme Kartı
- 1x LED
- 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).