Here i have different opinion:
we have the following code, if at your side, your read operation is return as NACK means no data read from sensor. then data->status bit new data is not matching. Then it will always stay in while loop for retry.
If we read data successfully, so we got new data mask as desired value, we will calculate the temperature, pressure and humidity value, then jump out the loop.
For this sequence, i didn't see same bug you reported.
if (data->status & BME680_NEW_DATA_MSK) {
data->temperature = calc_temperature(adc_temp, dev);
data->pressure = calc_pressure(adc_pres, dev);
data->humidity = calc_humidity(adc_hum, dev);
data->gas_resistance = calc_gas_resistance(adc_gas_res, gas_range, dev);
break;
}
... View more