Forum: Mikrocontroller und Digitale Elektronik STM32 I2C ADDR Flag


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe ein Problem mit dem I2C beim STM32.

Ich bin gerade dabei einen BMP085 über I2C aufzuwerten.

Das Problem ist folgendes:

Wie ihr in dem Bild seht wird das ADDR Flag beim senden der Adresse 
gesetzt. Soweit so gut, aber wenn ich danach den CheckEvent aufführen 
ist das Flag auf einmal zurückgesetzt und somit geht der Check natürlich 
in den Errorzustand.

Hier mein Code:

.
.
.
// I2C1
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
I2C_DeInit(I2C1);

  /* I2C configuration */
  I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  I2C_InitStructure.I2C_OwnAddress1 = 0x32;
  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  I2C_InitStructure.I2C_AcknowledgedAddress = 
I2C_AcknowledgedAddress_7bit;
  I2C_InitStructure.I2C_ClockSpeed = 10000;

 /* Apply I2C configuration after enabling it */
  I2C_Init(I2C1, &I2C_InitStructure);

  /* I2C Peripheral Enable */
  I2C_Cmd(I2C1, ENABLE);
.
.
.

I2C_GenerateSTART(I2C1, ENABLE);
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(I2C1, 0xee, I2C_Direction_Transmitter);
while(!I2C_CheckEvent(I2C1, 
I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
.
.
.

Hat jemand von Euch eine Idee was ich falsch mache?

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.