Gast
#5560683
Hi, ich versuche mittels Raspi (Master) einem STM32F031 (Slave) ein Bild zu senden, welches er dann auf einem Display, dass am SPI hängt, anzeigt. Dazu muss ich vorher prüfen, ob das Display bereit ist Daten zu empfangen. Dafür habe ich ein Kommando eingerichtet (0x04). Sendet der Raspi jetzt 0x04 an den STM, so prüft dieser die Bereitschaft des Displays und meldet dann entweder ready (0x05) oder eben busy (0x06) zurück. So weit die Theorie. Jetzt habe ich aber das Problem, das der STM durch Clockstretching den Bus blockiert wenn er nicht rechtzeitig antworten kann. Und da der Raspi kein stretching unterstützt bricht er die Übertragung ab. Also habe ich das Stretching deaktiviert. Und siehe da die Übertragung geht nicht mehr. Der Raspi fragt den Status ab und bekommt als Antwort immer 0xFF. Diese Antwort habe ich aber in keinem Fall festgelegt. Wieso kann der STM ohne Clockstretching scheinbar den Datenpin nicht mehr auf low ziehen?? Die wirklich einzige Änderung die ich vorgenommen habe ist folgende: hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; -> hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_ENABLE;