# Etkileşimli STM32 SPI ve Yüksek Hızlı Çevre Birimleri

<div class="mlv-demo-links">
  <a class="mlv-demo-link" href="index.html">STM32 Rotası</a>
  <a class="mlv-demo-link" href="interactive_gpio_lab.html">GPIO Laboratuvarı</a>
  <a class="mlv-demo-link" href="interactive_clock_timer_lab.html">Clock ve Timer</a>
  <a class="mlv-demo-link" href="interactive_uart_lab.html">UART ve Terminal</a>
  <a class="mlv-demo-link" href="interactive_pwm_lab.html">PWM Laboratuvarı</a>
  <a class="mlv-demo-link" href="interactive_adc_lab.html">ADC ve Sensörler</a>
  <a class="mlv-demo-link" href="interactive_i2c_lab.html">I2C ve Sensörler</a>
  <a class="mlv-demo-link" href="interactive_interrupt_dma_lab.html">Interrupt ve DMA</a>
  <a class="mlv-demo-link active" href="interactive_spi_lab.html">SPI ve Cevre Birimleri</a>
  <a class="mlv-demo-link secondary" href="../_static/demos/stm32-spi-lab.html">Tam Ekran Demo</a>
</div>

<div class="mlv-demo-hero">
  <div class="mlv-demo-kicker">STM32 / Ders 8</div>
  <p class="mlv-demo-lead">Bu laboratuvar, SPI haberleşmesini yalnızca `MOSI/MISO` isimlerinden ibaret değil; `chip select`, `CPOL/CPHA`, `clock speed` ve `tam çift yönlü aktarım` arasındaki ilişki olarak görünür kılar. Burada doğru mod seçildiğinde veri temiz akar; yanlış kenarda örnekleme yapıldığında ya da `CS` hattı doğru kullanılmadığında hatanın izi hemen ortaya çıkar.</p>
</div>

<div class="mlv-demo-grid">
  <div class="mlv-demo-panel">
    <strong>Ne Yap</strong>
    <span>Cihaz tipini seç, master mode (`0-3`), `CS` durumu, clock hızı ve komutu değiştir; ardından bit akışını ve alınan cevabı incele.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Ne Öğren</strong>
    <span>`CPOL`, `CPHA`, `chip select`, `dummy byte` ve `tam çift yönlü aktarım` kavramlarının aynı veri çerçevesinde nasıl birleştiğini gör.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Görev</strong>
    <span>Önce doğru modda başarılı aktarım yap. Sonra bilerek yanlış mode geç ve `bit shift` etkisini gözle; en son `CS` hattını bozup slave neden sessiz kaldı gör.</span>
  </div>
</div>

<div class="mlv-demo-note">
SPI'de `read` bile saat üretmeden olmaz. Master veri almak istiyorsa yine clock üretmeli; çoğu durumda bunun için MOSI hattından `dummy byte` gönderilir.
</div>

<iframe
  class="mlv-demo-frame"
  src="../_static/demos/stm32-spi-lab.html"
  title="STM32 SPI ve Yüksek Hızlı Cevre Birimleri"
  loading="lazy"
  frameborder="0"
></iframe>

## Bu Derste Ne Oturmalı?

1. SPI'de master, `SCK` saatini üretmeden slave veri döndüremez; veri alışverişi aynı anda iki yönde akar.
2. `CS` hattı seçili değilse slave çoğunlukla veri sürmez; bu yüzden sessizlik her zaman clock hatası anlamına gelmez.
3. `CPOL/CPHA` uyuşmazlığı, bitlerin yanlış kenarda örneklenmesine ve kaymış/bozulmuş veri okunmasına yol açabilir.
4. Clock hızı cihazın desteklediği sınırı aşarsa mod doğru olsa bile veri kalitesi bozulabilir.

```{note}
Bir sonraki doğal laboratuvarlar `FreeRTOS`, `low power modları`, `CAN`, `USB` ya da `RTOS + SPI DMA` entegrasyonu olabilir.
```
