Cannot read accelerometer values from MPU6050 Interfaced with STM32F303RE
I'm not sure whether this is your problem, but the HAL functions you're using are not the best for reading a register (sub-address) from a device.  HAL_I2C_Master_Transmit() writes the specified data to the device and terminates the transmission with an I2C Stop bit.  And then HAL_I2C_Master_Receive() starts a new exchange to read data from the device.

But the recommended I2C read sequence on page 36 of the datasheet is different from what your code does.  The recommendation is to write the register address value and then send a Repeat Start bit (not a Stop) before reading the data bytes.  You can't write, repeat-start, and read with HAL_I2C_Master_Transmit() or HAL_I2C_Master_Receive().  But you can do this with HAL_I2C_Mem_Read().

Try replacing your calls to HAL_I2C_Master_Transmit() and HAL_I2C_Master_Receive() with this single call:

HAL_I2C_Mem_Read(&amp;hi2c1, mpu6050Address, 0x3B, I2C_MEMADD_SIZE_8BIT, &amp;i2cBuff[1], 6, 10);


I'm not sure whether this will fix your problem because the way you're doing it may work for many I2C devices that remember the previous register sub-address from one exchange to the next.  If you can read the device's WHO_AM_I register successfully then there may be another problem.  For example, perhaps you need to enable or configure the accelerometer before you can read the accelerometer values.