Posted on December 20, 2016 at 13:35The original post was too long to process during our migration. Please click on the attachment to read the original post.
Make sure your connections are OK. Read back the GPIO registers in a debugger and verify their content is what you intended.
[EDIT]
I2C_CR2:
SADD[7:1]: Slave address bit 7:1 (master mode)
In 7-bit addressing mode (ADD10 = 0):These bits should be written with the 7-bit slave address to be sent
I2C_OAR1:
Bits 7:1 OA1[7:1]: Interface address
Bits 7:1 of address
Well, the latter is just another incarnation of the 'I don't understand the 7-bit address from I2C specification'. OA1 should contain the 7-bit address, ergo, drop the shift in
The address both in OAR and CR2 has the same structure, so either shift both (treating them as 7-bit address as per I2C spec) or none (treating them as the 'customary' 8-bit address).
If you have both shifted, then again, double-check the connections and the macros you've used in the slave code.