to check if the slave has successfully been selected to read or
write and the master is in the corresponding receive or transmit
state, SR2 was checked.
but reading SR2 also cleared the ADDR bit, starting the read/write
transaction.
the check is done in the read/write methods anyway.
sometimes the internal state f the I2C peripheral is confused,
and sending a start condition is not possible and the
corresponding registers will not be set.
see the errata for more details.
as workaround a timer is used, resetting the I2C is case it times
out