You're right on your understanding of I2C addresses, but not right about STM32 I2C functions.
You do not need to shift the address manually. HAL_I2C_Mem_Write() and HAL_I2C_Mem_Read() already do that for you.
See I2C HAL module driver for STM32F4