Drift
You inherited firmware that reads an I2C temperature sensor (address 0x48, register 0x00) and prints the result over USART1 at 9600 baud.
The code compiles cleanly and the I2C transaction completes, but the UART output looks wrong. On a real board you would see garbled characters on the logic analyzer, and the baud rate measured on the scope would not match 9600.
The previous engineer says the board has an 8MHz crystal, but the register dump tells a different story. Use the USART BRR and I2C timing register artifacts to figure out what clock the system is actually running on, then fix the peripheral timing to match. The grader checks the registers directly: with 16x oversampling, BRR must hold the peripheral clock divided by 9600, rounded to the nearest whole number, and the I2C1 CR2 FREQ field must hold the peripheral clock in MHz.
Expected output (one line, followed by newline): TEMP:<degrees>
where <degrees> is the temperature the sensor reports as a decimal number.