Wie ich schon einmal schrieb, hatte ich auch Probleme mit der
HAL_I2C_Master_Transmit Funktion.
Seit dem habe ich mir angewöhnt die Typen mit zu übergeben.
Also:
HAL_I2C_Master_Transmit(&hi2c1,SSD1306Adresse[i],SSD1306Command,2,100);
wird zu:
HAL_I2C_Master_Transmit(&hi2c1,(uint16_t)SSD1306Adresse[i],(uint8_t*)SSD
1306Command,2,100);
Seit dem gab es in keiner Situation mehr Probleme.
Sonst sehe ich da nur ein Timing Problem, das durch die zusätzlichen
Zeilen entschärft wird.
Vereinfacht habe ich meine SSD1306 Ansteuerung, in dem ich alles im RAM
bearbeite und dann in einem Rutsch per DMA zum SSD1306 sende.
Bei 400kHz gelingt das auch ohne Bildstörungen.