If you have one working, you are all set. There is a bit of a trick to it though.
Start with all sensors in shutdown.
Then bring up the first one by raising the shutdown pin. The sensor will come up to the default address.
Issue the command to change address. - SetI2CAddress
Then bring up the second sensor.
Issue the command to change address.
Repeat until all sensors have different addresses. - I use 0x62, 0x64, 0x66, 0x68, 0x6A...
Technically you don't have to change the address of the last one, but if you do you can use the default address as a health check. If you ever ping it and get an answer, one or more of your sensors has reset.
Then the trick is to insure you have the correct address set when making calls.
The psudo-code would look like this (it's for an L1X chip, but yours is similar:
void ResetAndInitializeAllSensors(void)
{
VL53L1X_ERROR status;
uint8_t i, Sensor, temp;
int16_t Offset;
ResetAllSensors();
HAL_Delay(10);
for (i = 0; i < NumOfTOFSensors; i++)
{
Dev[i] = 0x52;
TurnOnSensor(i);
HAL_Delay(5);
do {
status = VL53L1X_BootState(Dev[i], &temp);
HAL_Delay(5);
if (status) {
UART_Print("BootState returned bad status\n");
}
} while (temp != 3);
status += VL53L1X_SensorInit(Dev[i]); /* Initialize sensor */
status += VL53L1X_SetI2CAddress(Dev[i], DevAddr[i]); /* Change i2c address Left is now 0x62 and Dev1 */
CHECK_ERROR(status);
Dev[i] = DevAddr[i];
//status += VL53L1X_SensorInit(Dev[i]); /* Initialize sensor */
}
UART_Print("All Chips booted\n");