Gast
#4444505
Hallo, ich versuche gerade die I2C-Schnittstelle bei meinem STM32F4 zum laufen zu bringen. Es funktioniert schon ganz gut nur wenn ich einen Stop-Befehl sende läuft er in den Timeout. Es stimmt also irgendwas bei der while-Schleife nicht. Habe es wie folgt gemacht: void I2C_send_Stop() { uint32_t timeout=0; I2C_GenerateSTOP(I2C1, ENABLE); timeout=0x3000; while ((!I2C_GetFlagStatus(I2C1, I2C_FLAG_TXE)) || (!I2C_GetFlagStatus(I2C1, I2C_FLAG_BTF) || (!I2C_GetFlagStatus(I2C1, I2C_FLAG_RXNE)) )) { if (timeout!=0) { timeout--; } else { return (I2C1_timeout(4)); } } } Kann mir da jemand weiterhelfen? Achja und weiß vielleicht jemand wie man ein ACK abfragt? Habe es mit Abfrage des AF-Flags versucht, hat aber nicht geklappt. Danke schonmal