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

İçindekiler

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

STM32 / Ders 6

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.

Ne Yap 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.
Ne Öğren `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.
Görev Ö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.
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.

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.

Not

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