BMI088 I2C Help

Hi all, I'm trying to use I2C to communicate between an Arduino Uno and a BMI088 Accelerometer and Gyroscope sensor. I have had luck reading the information register but am having problems moving onto reading the temperature registers. No matter what the conditions are 0x22 reads 0 and 0x23 reads 128. Both of these values are acceptable(0x23 only has a specific set of correct values) but dont change when I try to heat up the chip. If anyone could help me troubleshoot my code or explain to me a better way to do this it would be greatly appreciated! Thanks!
Datasheet (See page 28 for temperature info)

#include <Wire.h> 
void read(int adr)
{ 
Wire.beginTransmission(0x18);
 Wire.write(adr); 
Wire.requestFrom(0x18,1); 
byte val = Wire.read(); 
Wire.endTransmission(); 
Serial.println(val); 
} 

void setup() { 
Wire.begin(); // join i2c bus (address optional for master) 
Serial.begin(9600); // start serial for output 
} 

void loop() { 
delay(1000); 
read(0x22); 
read(0x23); 
}

Your read() function isn't correct. Try this version:

void read(int adr)
{
  Wire.beginTransmission(0x18);
  Wire.write(adr);
  Wire.endTransmission();
  Wire.requestFrom(0x18,1);
  byte val = Wire.read();
  Serial.println(val);
}