2021-01-27 01:15 PM
I have 2 I2C interfaces set up on my STM32H753, one for the touchscreen interface (I2C3) and one for an EEPROM (I2C1). The touchscreen interface works just fine, but I have issues reading from the EEPROM. No interrupts in generated by the I2C interface (and if there is one, it comes about 10 seconds later). I checked the enable status of the interrupts, and they are. So I am puzzled why the I2C for the touchscreen is working while the one for the EEPROM is not. Here is the initialization code generated by CubeMX and then also the code for the EEPROM and touchscreen. The read from the touchscreen is triggered by an external interrupt, and this just works fine. For the EEPROM can can see on the oscilloscope that the address is transmitted and then the read started, But it stops after the first byte. If I use DMA instead of interrupt driven, then I can see that all 6 bytes of data are transmitted, but they never end up in the buffer, and no interrupts after the completion of the transfer is generated. Has anyone an idea why this does not work?