STM32F746 - DISCO I2C HAL_TIMEOUT
The protocol is wrong. It is not register based to a single slave address so you can't use the Mem_Write and Mem_Read functions. What you have is there are three different slave addresses for single byte for command, MSB and LSB data.