перенёс с stm32f407 на stm32f100rb проектик с I2C, после чтения регистра линия SDA падает в 0 и там висит, в SR устанавливаются биты ARLO и BUSY. На 407 всё нормально работает.
Вообщем обнаружил что DR не считывается, видимо из-за этого все беды... в даташите что-то про это написано, буду разбираться...
Код тут
http://pastebin.com/ifUCXtZn