STM32H7 HALのHAL_I2C_Transmit_IT() 関数に不具合が有ります。
I2Cバス仕様では、I2Cバスの指定アドレスにデバイスがない場合とデバイスがNAK応答を返した場合を区別できません。言い換えると、デバイスがない場合、マスターはNAK応答として処理することになります。
STM32H7のI2CペリフェラルはNAKが帰ってきた場合、エラー割り込みでNAKを通知します。ですので、HAL_I2C_Transmit_IT()関数を使用した際にターゲットとなるI2Cデバイスがない場合には「即座に」エラー割り込みがかからなければなりません。
ところが、現在の実装では割り込みが数秒後にかかります。これはSTM32F7, G4, G0, F0などには存在しなかった挙動です。
I2CではNAKを異常状態通知だけではなく、バッファがいっぱいであると言ったステータス報告にも使うため、このような挙動は深刻な問題を引き起こします。
この問題はコミュニティに報告済みです。