I've been struggling with this problem for the last weeks. I cannot make it to comunicate my carbon board with an fxos8700 IMU.
Enabling the interruptions mode on the i2c driver, I can see on the logic analyzer it sends the address of the byte to read, but it doesnt receives the answer.
I tried my best to debug it with gdb and I get to the point where it gets looped on `handle_rxne` (drivers/i2c/i2c_ll_stm32_v1.c) with `data.len = 0`.
I also have some doubts about some lines there. For example, how does it ack the message if it enters the first `if` with `data.len = 1` and then, when decreased, `data.len == 1` its false.
It doesnt generate the stop bit either because the burst read sets `I2C_MESSAGE_RESTART` flag.
Why does `i2c_reg_read_byte` uses burst read instead of normal read?
Any help on this would be really apreciated, Im really stuck on here.