This application note provides I2C firmware optimized examples based on polling, interrupts and DMA, covering the four I2C communication modes available in the STM32F10xxx, that is, slave transmitter, slave receiver, master transmitter and master receiver.