# Etkileşimli STM32 I2C ve Sensör Haberleşmesi

<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 active" href="interactive_i2c_lab.html">I2C ve Sensörler</a>
  <a class="mlv-demo-link secondary" href="../_static/demos/stm32-i2c-lab.html">Tam Ekran Demo</a>
</div>

<div class="mlv-demo-hero">
  <div class="mlv-demo-kicker">STM32 / Ders 6</div>
  <p class="mlv-demo-lead">Bu laboratuvar, I2C haberleşmesini soyut bir protokol listesi gibi değil; fiziksel bir bus ve teşhis pratiği gibi gösterir. Burada yanlış adres, eksik pull-up ya da aşırı hızlı bus seçimi farklı türde hatalar üretir ve her biri transcript içinde ayrı bir iz bırakır.</p>
</div>

<div class="mlv-demo-grid">
  <div class="mlv-demo-panel">
    <strong>Ne Yap</strong>
    <span>Slave tipini seç, adres pinini değiştir, master hedef adresini ve bus hızını ayarla; ardından register okuma işlemini başlat.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Ne Öğren</strong>
    <span>`7-bit adres`, `ACK/NACK`, `pull-up`, `register adresleme` ve `HAL_I2C_Mem_Read` akışının aynı zincirin parçaları olduğunu gör.</span>
  </div>
  <div class="mlv-demo-panel">
    <strong>Görev</strong>
    <span>Önce sıcaklık sensöründen doğru register oku. Sonra bilerek yanlış adrese geç ve NACK oluştuğunu; en son da pull-up kapatıp bus hatasının neden geldiğini gözle.</span>
  </div>
</div>

<div class="mlv-demo-note">
I2C'de sessizlik tek bir anlama gelmez. Doğru teşhis için fiziksel hat, adresleme ve işlem sırası birlikte okunmalıdır.
</div>

<iframe
  class="mlv-demo-frame"
  src="../_static/demos/stm32-i2c-lab.html"
  title="STM32 I2C ve Sensör Haberleşmesi"
  loading="lazy"
  frameborder="0"
></iframe>

## Bu Derste Ne Oturmalı?

1. I2C bus, `SDA` ve `SCL` hatlarını high seviyeye çekmek için pull-up direncine ihtiyaç duyar.
2. Master, önce `7-bit slave adresi` ile konuşur; hiçbir slave cevap vermezse `NACK` görülür.
3. Register temelli sensörlerde veri okumak çoğu zaman `adres -> register -> tekrar start -> veri` akışıyla yapılır.
4. STM32 HAL tarafında cihaz adresi genellikle sola kaydırılmış (`7-bit << 1`) biçimde verilir.

```{note}
Bir sonraki doğal laboratuvarlar `interrupt timeline`, `DMA`, `SPI` ya da `FreeRTOS görev akışı` tarafına uzanabilir.
```
