I'm working on an embedded system with a BMP388 and I'm trying to write a simple application to communicate with it through I2C and read out the recorded pressure value. I'm using this adafruit BMP388 development board: https://www.amazon.com/Adafruit-BMP388-Precision-Barometric-Altimeter/dp/B07JXYK9ZB/ref=sr_1_4?crid=2SWU90HY38OVS&keywords=bmp388&qid=1654127996&sprefix=bmp388%2Caps%2C135&sr=8-4
I'm sucesfully able to communicate over I2C and read/write values to the BMP388. However, when I try to read out the recorded pressure, the BMP388 stalls indefinitely. I've probed the wires and discovered that the values in the BMP388's registers aren't what I expect to be there. According to the datasheet (https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp388-ds001.pdf), on page 32, the microcontroller needs to check the status register (0x3) before reading out the pressure, and wait until the value in the status register updates to a 1. My microcontroller is doing this correctly, but the issue is that the BMP388 never updates the status register's value to 1.
In the error register (described on page 31), it perpetually stores the value 0x0, so there doesn't seem to be any error coming up. In the data registers for both pressure and temperature (described on page 32), they only store the default values (described on page 31). There doesn't seem to be anything I can do to make any of these values update, even after I wait for a while and have the microcontroller constantly querying the BMP388. Does anyone know what I should do?
Also, in general, what conditions need to be met in order for the status register in the BMP388 to update to a 1?