Crossed Wires
I2C Sensor Fields Read Wrong Debug
Symptom
The terminal shows ID:0x5A, which is right, then TEMP:265, STATUS:0xF5 and PRESS:65535. The registers and bit fields are on the Datasheet tab.
Circuit
Pass condition
Once after reset, USART1 prints four lines from one read of U2's block: ID and STATUS in hex, TEMP and PRESS in decimal.
Notes
The bench's U2 steps its register pointer per byte, so one read from 0x00 returns the block. Only I2C1 needs its clock enabled on this bench, and the program does that.