我用的是MAX3025温度传感器,但是从寄存器里读到的值一直是负数,寄存器结构如下

而且我用地址0x48无法读到传感器数据,只有用0x4c才能读到数据。请各位帮忙看看这是什么原因。
详细代码如下:
#include <Wire.h>
#define MAX30205_ADDR 0x4c
#define TEMP_REG 0x00
void setup() {
Serial.begin(115200);
Wire.begin(22, 23); // XIAO ESP32-C6: D4 SDA, D5 SCL
delay(1000);
Serial.println("MAX30205 Register Bit Test");
}
void loop() {
// 读取温度寄存器
Wire.beginTransmission(MAX30205_ADDR);
Wire.write(TEMP_REG);
Wire.endTransmission(false);
Wire.requestFrom(MAX30205_ADDR, 2);
if (Wire.available() == 2) {
uint8_t msb = Wire.read();
uint8_t lsb = Wire.read();
int16_t raw = (msb << 8) | lsb;
float temp = raw / 256.0;
Serial.println("=================================");
Serial.print("MSB HEX: ");
Serial.println(msb, HEX);
Serial.print("LSB HEX: ");
Serial.println(lsb, HEX);
Serial.print("Raw HEX: ");
Serial.println(raw, HEX);
Serial.print("Temperature: ");
Serial.print(temp);
Serial.println(" C");
Serial.println();
Serial.println("Bit解析 (T15 ~ T0)");
for (int i = 15; i >= 0; i--) {
int bitValue = (raw >> i) & 1;
Serial.print("T");
Serial.print(i);
Serial.print(" = ");
Serial.println(bitValue);
}
Serial.println();
// 打印完整二进制
Serial.print("Binary: ");
for (int i = 15; i >= 0; i--) {
Serial.print((raw >> i) & 1);
}
Serial.println();
}
delay(2000);
}