STM32F103 I2C Sorunu

Başlatan sımışka, 22 Ekim 2020, 16:40:50

sımışka

Merhaba,

SHT20 sensörü ile i2c üzerinden nem ve sıcaklık okuyorum, hal lib ile.
Sensörü sök tak yaptığımda bir daha çalışmıyor. Reset atmam veya kodu tekrar yüklemem gerekiyor. Neden olabilir acaba ?
Kullandığım Kodlar, hal trasmit ve receive fonksiyonları. Aralarda yeterince bekleme süresi koyuyorum.

Murat Mert

Devre çalışırken mi sök tak yapıyorsunuz?
mert07

sımışka

Evet devre çalışırken sensörü söküp taktığımda oluşuyor bu durum

ahuramazda

normal olanı çalışmaması zaten.

sensörü söküp taktığınızda sensöre ait olan init fonsiyonuna dallanmıyor programınız. işlemciyi resetlediğinizde olması gerektiği gibi init fonksiyonuna dallanıyor ve sisteminiz beklediğiniz gibi çalışıyor.

JOKERAS

Hata kontrolleri yapılmadan I2C Donanımı Devreden çıkınca,I2C fonksiyonunu çağırdığınız da hata olur.
Bir yapıda kontrol edilen Donanımlar varsa, en başta olası hata durumları kontrol edilmeli.
Bir Donanımın Hata durumlarını tespit etmek Donanımı çalıştırmaktan daha zor ve meşakketlidir.
Çünkü Hata ne şekilde zuhur edeceği bilinmeyen rastgele bir durumdur.

Kodunuzda Device adresini gönderdiğiniz yerde ACK'yı Polling yaptıran bir Kod yazın.
Bu kod bloke çalışan bir kod olmalı.Yada Counter,yada Time Out sayıp Sistemi Başa aldırmak,Reset Etmek.
Bu mantık sadece Device'ın olup olmadığını kontrol eder.

I2C device'ı çalışırken söktüğünüz anda,Cihazın Latch tipi,Ram tipi Registerleri O durumu muhafaza eder.
tabii bu,her I2C device'ı için geçerli değil.Cihaz bir EEprom ise sorun olmaz ama bir Saat ise sorun olur.
I2C'nin iç Donanımına bağlı.

Murat Mert

Alıntı yapılan: sımışka - 24 Ekim 2020, 11:51:25Evet devre çalışırken sensörü söküp taktığımda oluşuyor bu durum

Sensör için başta yaptığınız initleri tekrar yapmanız lazım yada reset atmanız. Çalışırken sökmenizi pek tavsiye etmem.
mert07