2012-10-03 06:24 AM
So I have a good familiarity with I2C, having written interrupt driven drivers for several other processors. Notwithstanding I am puzzled by the I2C implementation on the STM32.
I have my serial EEPROM I2C driver working, but there is a significantly greater overhead due to the sheer number of interrupts occurring. The issues seems to come down to that fact that there seems to be no way for software to clear the BTF interrupt. What I am seeing is the following. I finish sending the EEPROM address and then from the time I issue the repeated start command to the time I get the I2C_EVENT_MASTER_MODE_SELECT interrupt, I receive around 14 I2C_EVENT_MASTER_BYTE_TRANSMITTED interrupts, all telling me that the transmitter is empty.My question is how do I suppress these extra interrupts? And why did ST not see fit to have a way in software to clear it? #i2c-interrupts-stm32