Crosstalk
A combined temperature and humidity sensor is connected on I2C1 at slave address 0x48. The temperature register is at 0x00 and the humidity register is at 0x01. Each returns a single byte.
A colleague wrote firmware to read both values and print them over UART. The code compiles cleanly, but the output is wrong: the humidity reading always matches the temperature, as if the second register is never actually read. The I2C bus log confirms something is off in the transaction sequence.
Each register holds whatever byte the harness loads for that run, so the two printed values should differ. Find and fix all the bugs so both readings reflect the byte actually stored in their own register.