Forum: Mikrocontroller und Digitale Elektronik SSD1306, i2c und STM


von BengofEtechnik (Gast)


Lesenswert?

Hallo,
einen stm32f303 , ein led display und den Treiber SSD1306.

Problem ist, dass ich das Display nicht finde
die Adresse ist 0x78 aber

HAL_I2C_IsDeviceReady(&hi2c1, 0x78, 20, 100)

liefert leider nichts. Hat einer Erfahrungen damit?

Pullups und so weiter sind drin, daran liegt es nicht und der STM wurde 
über CUBEMx konfiguriert.

von Stefan F. (Gast)


Lesenswert?

Versuche es mal mit 0x3C anstatt 0x78.

Es geht um die Darstellung der Adresse als 7bit versus 8bit. In der 8bit 
Darstellung steckt die Adresse in den Bits 1-7. Bit 0 signalisiert, ob 
du lesen oder schreiben willst.

von Harry L. (mysth)


Lesenswert?

Die HAL-Funktionen erwarten die Adresse inkl. des R/W-Bit. - also 0x78.
Es gibt aber auch Displays, die auf die alternative Adresse 0x7a 
gejumpert sind.
Die würde ich mal probieren.

von BengofEtechnik (Gast)


Lesenswert?

ne ändert leider nichts, hab auch einmal alle adressen gescannt und 
nichts gefunden, hätte ja sein können, dass jemand diess problem schon 
mal hatte . Die Diplays isnd ja recht weit verbreitet

von Harry L. (mysth)


Lesenswert?

Ja, ich nutz diese Displays sehr gern - auch mit STM32 und HAL.
Bist du sicher, daß du I²C im CubeMX korrekt initialisiert hast?

Vielleicht hilft dir das:
https://github.com/HarryLipphaus/DisplayKit

von BengofEtechnik (Gast)


Lesenswert?

okay ichprobiere gerade deine bib aus, nur findet er die font maps 
nicht.

von BengofEtechnik (Gast)


Lesenswert?

(pgm_read_byte(&fnt_map[i].idx) != 0Xff)
            && (pgm_read_byte(&fnt_map[i].c) != c); i++)
      ;
    idx = pgm_read_byte(&fnt_map[i].idx);

also hier gibt er fehler raus.

von M. K. (sylaina)


Lesenswert?

Ist's auch richtig angeschlossen? Wenn SCL und SDA vertauscht sind ists 
auch essig mit der Kommunikation. Die Sache mit dem 0x78 und dem 0x3c 
wurde ja schon genannt.

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

BengofEtechnik schrieb:
> pgm_read_byte

BengofEtechnik schrieb:
> einen stm32f303

Klingelt es da bei Dir nicht?
Ein STM32 ist kein AVR.

von Harry L. (mysth)


Lesenswert?

Lötlackl *. schrieb:
> BengofEtechnik schrieb:
>> pgm_read_byte
>
> BengofEtechnik schrieb:
>> einen stm32f303
>
> Klingelt es da bei Dir nicht?
> Ein STM32 ist kein AVR.

Es gibt entsprechende Makros dafür.
Compiliert auch mit ARM.

Der Clou ist ja, daß dieser Code unverändert auf AVR und ARM 
compiliert.

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

Harry L. schrieb:
> Es gibt entsprechende Makros dafür.
> Compiliert auch mit ARM.

Wußte ich noch gar nicht. Danke für den Hinweis! Habe auch gleich was im 
Netz gefunden.
https://github.com/PaulStoffregen/cores/blob/master/teensy3/avr/pgmspace.h

Aber, ob der TO sowas verwendet hat, entzieht sich meiner Kenntnis.

von BengofEtechnik (Gast)


Lesenswert?

okay,  ein kabel war lose, 5 stunden meines und eures lebens 
verschwendet

von Trapsende Nachtigall (Gast)


Lesenswert?

BengofEtechnik schrieb:
> okay,  ein kabel war lose

Steckbrett-Scheisse, wa?

von Harry L. (mysth)


Lesenswert?

BengofEtechnik schrieb:
> okay,  ein kabel war lose, 5 stunden meines und eures lebens
> verschwendet

shit happens....

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
Noch kein Account? Hier anmelden.