表題の問題があることを突き止めました。
問題が発生するのはNAKが帰ってきた時です。このときI2Cエラー割り込みが発生しますが、HALの中で扱いを誤っているらしく割り込みハンドラの中で例外が発生しています。
- CubeMX 5.1
- STM32Cube FW_F4 v1.24.0
- SW4STM32 v1.17.0.201812190825
- Nucleo F446RE (Nucleo 64)
この問題はコミュニティに報告済みです。リンク先には再現用のプロジェクトもあります。
補足:スレーブからNAKが帰ってくるのはI2Cにとってごくありふれたことですので、事実上STM32F446のHALは現在I2Cを割り込み環境で使えないということです。
追記(2019/Oct/27):問題が解決していることを確認しました。