STM32F103C8 as I2C SLAVE - I2C HAL_I2C_Slave_Seq_Transmit_IT sends address as the first data byte. HAL Bug ?
STM32F103 as Interrupt driven I2C slave . in the address callback
Master READ
if (dir == I2C_DIRECTION_RECEIVE) // 0
{
data[0] = 0x55;
data[1] = 0xAA;
HAL_I2C_Slave_Seq_Transmit_IT(hi2c, &data[0], 2, I2C_LAST_FRAME);
}
On the wire (see picture) the first byte returned to the master is always a duplicate of the address | direction bit. Tested this with several different addresses. Changing the option flag LAST_FRAME) does not matter. Also the error callback is called and the error is 0x0C (AF | OVR) For example: Address 0x30 write , setup = 0x61. 1st data byte = 0x61 (0x30 << 1 | 1), second is 0x55. For address 0x20, setup = 0x31 , first data byte = 0x31, second is 0x55. 0xAA never goes over the wire
When receiving data from a master, (MASTER WRITE) HAL_I2C_Slave_Seq_Receive_IT(hi2c, data, 2, I2C_LAST_FRAME); does receive the two correct data bytes.

