Forum: Mikrocontroller und Digitale Elektronik STM32L152 I2C Read funktioniert nicht richtig


von Michael (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mit einem STM32L152RCT6 über I2C ein eeprom auslesen. Habe 
aber immer mit dem 2. Byte Probleme.

Ich habe mit dem STM32CubeMX ein Projekt aufgesetzt und den I2C-Bus 
configuriert. Ich nutze den I2C im Interrupt mode.
1
/* I2C2 init function */
2
void MX_I2C2_Init(void)
3
{
4
  HAL_I2C_DeInit(&hi2c2);
5
  
6
  hi2c2.Instance = I2C2;
7
  hi2c2.Init.ClockSpeed = 100000;
8
  hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
9
  hi2c2.Init.OwnAddress1 = 0;
10
  hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
11
  hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
12
  hi2c2.Init.OwnAddress2 = 0;
13
  hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
14
  hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
15
  HAL_I2C_Init(&hi2c2);
16
17
}

So sieht die Ausleseroutine aus
1
HAL_I2C_Mem_Read_IT(&hi2c2, 0x4B, Reg_Addr[0], Add_Length, Reg_MTCH6102, Size);

Alle ausgelesenen Bytes sind richtig nur das 2. nicht. Ich habe von 
Total Phase noch ein I2C Usb Adapter, damit funktioniert es.

Ich komme im Moment nicht weiter kennt jemand vielleicht das Problem?

von DanS S. (dns712)


Lesenswert?

Habe das selbe Problem, hat mittlerweile jemand eine Lösung gefunden?

Mit der Aktuellsten Version von STMCubeMX (4.21) besteht der Fehler 
immer noch.

von A. B. (Gast)


Lesenswert?

Beim CubeMX sind alle Sourcen dabei, umfangreiches "Papier"-Material 
gibt's von ST auch. Also einfach nachsehen, was da passiert und ggf. 
halt selbst die paar Register-Zugriffe kodieren???

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.