# STM32 Etkileşimli Öğrenme Rotası

<div class="mlv-stage">
  <div class="mlv-stage-kicker">Deneysel Ek / Gömülü Sistemler</div>
  <h2 class="mlv-stage-title">Kartı gör, pini seç, hatayı hisset.</h2>
  <p class="mlv-stage-lead">Bu rota, STM32 öğrenimini sadece uzun anlatı bloklarıyla değil; karar verdiren, hata gösteren ve gerçek kart davranışını görünür kılan etkileşimli laboratuvarlarla kurmak için tasarlandı. Su an on alti modul yayinda: GPIO mantigi, clock/timer sezgisi, UART teshisi, PWM davranisi, ADC olcum zinciri, I2C haberlesme mantigi, interrupt/DMA zaman sezgisi, SPI aktarim sezgisi, FreeRTOS gorev zamanlama mantigi, low power / wake-up sezgisi, mutex / priority inheritance gerilimi, tickless idle / RTC wake-up takasi, event groups / software timer koordinasyonu, CAN filtreleme sezgisi, watchdog / fault recovery dayanikliligi ve USB CDC / ring buffer akisi ayni ogrenme dili icinde ilerliyor.</p>
  <div class="mlv-stage-actions">
    <a class="mlv-card-action primary" href="interactive_usb_cdc_ring_lab.html">USB CDC Laboratuvarina Git</a>
    <a class="mlv-card-action secondary" href="interactive_watchdog_fault_lab.html">Watchdog Laboratuvari</a>
  </div>
  <div class="mlv-stage-metrics">
    <div class="mlv-stage-metric">
      <strong>16</strong>
      <span>Yayinda olan moduller, STM32'de GPIO, clock/timer, UART, PWM, ADC, I2C, interrupt/DMA, SPI, FreeRTOS, low power, mutex/PI, tickless idle, event groups, CAN, watchdog ve USB CDC sezgisini canli olarak kurar.</span>
    </div>
    <div class="mlv-stage-metric">
      <strong>16</strong>
      <span>Her derste aynı omurga hedeflenir: kavram, simülasyon, hata avı, kod ve mini quiz.</span>
    </div>
    <div class="mlv-stage-metric">
      <strong>HAL</strong>
      <span>Başlangıç düzeyinde başarı hissini korumak için ilk örnekler HAL kodu üzerinden ilerler.</span>
    </div>
  </div>
</div>

## İlk Açık Laboratuvar

<div class="mlv-path-grid">
  <a class="mlv-path-card" href="interactive_gpio_lab.html">
    <strong>Ders 1. GPIO ile LED ve Buton</strong>
    <span>PA5 ve PC13 üzerinden output, input, pull-up ve active-low mantığını kur. Doğru ayarda LED'i kontrol et; yanlış ayarda neden bozulduğunu teşhis et.</span>
  </a>
  <a class="mlv-path-card" href="interactive_clock_timer_lab.html">
    <strong>Ders 2. Clock ve Timer</strong>
    <span>SYSCLK, APB1, timer clock, PSC ve ARR zincirini canlı hesaplarla kur. Yaklaşık 1 Hz blink hedefini sezgisel olarak yakala.</span>
  </a>
  <a class="mlv-path-card" href="interactive_uart_lab.html">
    <strong>Ders 3. UART ve Terminal</strong>
    <span>Baud uyuşmazlığı, TX/RX yönü ve line ending hatalarını gerçekçi bir transcript ve terminal akışı içinde teşhis et.</span>
  </a>
  <a class="mlv-path-card" href="interactive_pwm_lab.html">
    <strong>Ders 4. PWM Davranışı</strong>
    <span>Aynı PWM sinyalinin LED, fan ve servo üzerinde neden farklı davrandığını; duty, frekans ve pulse width üzerinden keşfet.</span>
  </a>
  <a class="mlv-path-card" href="interactive_adc_lab.html">
    <strong>Ders 5. ADC ve Sensörler</strong>
    <span>Analog gerilim, ADC kodu, çözünürlük, Vref, gürültü ve averaging ilişkisinin ölçüm kalitesini nasıl değiştirdiğini keşfet.</span>
  </a>
  <a class="mlv-path-card" href="interactive_i2c_lab.html">
    <strong>Ders 6. I2C ve Sensör Haberleşmesi</strong>
    <span>Adresleme, ACK/NACK, pull-up ve register okuma akışını gerçekçi bir bus transcript'i içinde teşhis et.</span>
  </a>
  <a class="mlv-path-card" href="interactive_interrupt_dma_lab.html">
    <strong>Ders 7. Interrupt ve DMA</strong>
    <span>Polling, interrupt ve DMA arasındaki CPU yükü, wake-up sayısı ve veri kaybı farkını zaman çizelgesi üzerinde görünür kıl.</span>
  </a>
  <a class="mlv-path-card" href="interactive_spi_lab.html">
    <strong>Ders 8. SPI ve Yüksek Hızlı Çevre Birimleri</strong>
    <span>Chip select, CPOL/CPHA, tam çift yönlü aktarım ve hız sınırını aynı bit akışı üzerinde görünür kıl.</span>
  </a>
  <a class="mlv-path-card" href="interactive_freertos_lab.html">
    <strong>Ders 9. FreeRTOS ve Gorev Zamanlama</strong>
    <span>Task, queue, oncelik, blocking ve busy wait farkini zaman cizelgesi uzerinde gorunur kil.</span>
  </a>
  <a class="mlv-path-card" href="interactive_low_power_lab.html">
    <strong>Ders 10. Low Power ve Uyku Modlari</strong>
    <span>Sleep, Stop ve Standby arasindaki enerji, wake-up source ve resume latency takasini zaman cizelgesiyle gor.</span>
  </a>
  <a class="mlv-path-card" href="interactive_mutex_priority_lab.html">
    <strong>Ders 11. Mutex ve Priority Inheritance</strong>
    <span>Paylasilan kaynagi tutan dusuk oncelikli task, araya giren orta oncelikli task ve bekleyen yuksek oncelikli task arasindaki gerilimi PI ile karsilastir.</span>
  </a>
  <a class="mlv-path-card" href="interactive_tickless_idle_lab.html">
    <strong>Ders 12. Tickless Idle ve RTC Uyanisi</strong>
    <span>Periodic tick, tickless sleep ve RTC ile derin uyku arasindaki enerji, wake-up ve resume latency takasini ayni scheduler akisi uzerinden karsilastir.</span>
  </a>
  <a class="mlv-path-card" href="interactive_event_groups_lab.html">
    <strong>Ders 13. Event Groups ve Software Timers</strong>
    <span>ANY/ALL wait, clear-on-exit ve software timer callback davranisini ayni event bit zaman cizelgesi uzerinde gorunur kil.</span>
  </a>
  <a class="mlv-path-card" href="interactive_can_filter_lab.html">
    <strong>Ders 14. CAN ve Mesaj Filtreleme</strong>
    <span>ID list ve mask filtre secimlerinin noise, ISR yuku, FIFO baskisi ve yararli frame kaybi uzerindeki etkisini ayni bus akisi uzerinden karsilastir.</span>
  </a>
  <a class="mlv-path-card" href="interactive_watchdog_fault_lab.html">
    <strong>Ders 15. Watchdog ve Fault Recovery</strong>
    <span>IWDG, WWDG, yanlis ISR refresh, timeout reset ve safe mode toparlanmasi arasindaki dayaniklilik farkini ayni zaman cizelgesinde gor.</span>
  </a>
  <a class="mlv-path-card" href="interactive_usb_cdc_ring_lab.html">
    <strong>Ders 16. USB CDC ve Ring Buffer</strong>
    <span>CDC RX callback, ring buffer, parser gecikmesi ve newline framing seciminin veri kaybi uzerindeki etkisini ayni akista gor.</span>
  </a>
  <a class="mlv-path-card" href="#yakinda">
    <strong>Ders 17. Reset Reason ve Backup Registers</strong>
    <span>Bir sonraki genisleme, reset nedenini okuyup kalici hata izi birakma ve kontrollu toparlanma kararlarini gosteren bir durum yonetimi laboratuvari olabilir.</span>
  </a>
</div>

```{note}
Bu bölüm, STM32 için etkileşimli öğrenme mimarisinin çalışan ilk prototipidir. Amaç sadece içerik yazmak değil, öğrencinin yanlış ayarı gözünün önünde görmesini sağlamaktır.
```

(yakinda)=
## Yakindaki Genisleme Fikirleri

- `Tick hook / idle hook`: scheduler davranisini daha dusuk seviyede gostermek.
- `Reset reason + backup registers`: toparlanma desenlerini daha kalici hale getirmek.
- `Stream buffer / message buffer`: RTOS veri akisini daha net gostermek.
- `FDCAN + mailbox`: daha ileri haberlesme akislarini genisletmek.
