Ich habe folgendes problem ich übergebe der Funktion I2C_Send7bitAddress die adresse 0x48 (DS1621). Ich bekomme kein Ack obwohl ich sicher bin das die Adresse korekt ist. Wenn ich das Programm Debuge wird aber angezeigt das ich 0x24 auf den Bus schicke. Was genau die Hälfte der eigentlichen Adresse ist. Wenn ich die Adresse 0x90 das doppelte von 0x48 der Funktione übergebe schick ich laut Debug 0x48 auf den Bus und ich bekomme ein Ack von dem DS1621. Hat vielleicht irgendwer eine Ahnung was das Problem sein könnte? Danke schon mal im voraus
Schau doch mal in die Specs von i2c. Da gibts ein R/W-bit im Adressbereich.
> Hat vielleicht irgendwer eine Ahnung > was das Problem sein könnte? Ja, Datenblatt ohne Brille gelesen. :-D Dir ist offenbar entgangen das I2C-Adressen 7Bit Werte sind die um 1Bit geshiftet uebertragen werden damit noch das RW Bit ins Register passt. Aber mach dir nichts draus, das ist jedem schonmal passiert. Olaf
Die Funktion ist aus der Firmware lib von stm32 und erhält als parameter bereits R/W also nehme ich an das die Funktion dieses bit bereits anhängt.
Je nach Laune des jeweiligen Programmierers werden Adressen in I2C-Funktionen wahlweise in 8 Bits mit integriertem R/W-Bit und mal in 7 Bits codiert/angezeigt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.