Trouble getting I2C working on STM32 (stm32f103c8t6)
This might not answer all issues but a lot of them.

RCC-&gt;APB1ENR |= RCC_APB1ENR_I2C1EN | RCC_APB2ENR_IOPAEN;


By it's definition, the IOPAEN bit is in APB2, not APB1.
Also what troubles me is that code would like to enable IOPA but port A is not used while port B is.

// Set pin B6(SCL) to alternate push pull max 10MHz


By definition, I2C uses open drain signaling. Don't use push pull, unless you really know that you can use it with your I2C chips, and even then, what would be the point of it.

while (!(I2C1-&gt;SR1 &amp;= 1)) // Wait for start condition generated


While being valid C language, it will try to write back to the status register. Most likely you want:

while (!(I2C1-&gt;SR1 &amp; 1)) // Wait for start condition generated