上記の問題を発見しました。
STM32CubeIDE 1.0.2でSTM32L152といったMCUのプロジェクトを生成すると、一部のAPIが過去のAPIと互換性を失った形でプロジェクトが作られます。
具体的には、HALのマニュアルで”Sequential”なI2C APIとして紹介されたものが軒並み非互換になっています。例えば、以下のAPIはUM1816 Rev.5にSTM32L1のAPIとして紹介されています。
HAL_I2C_Master_Sequential_Transmit_IT()
ところが、今日現在のSTM32L1 HALは上記APIを提供していません。そのかわり、以下のAPIが存在しています。
HAL_I2C_Master_Seq_Transmit_IT()
もう、何がおきたかわかってしまいましたね。HALのAPIの名前を変えています。ところが、他のシリーズ(STM32F4など)でも同様な名前変更があるにもかかわらず、問題は起きていません。なぜかというと、stm32_hal_legacy.h で吸収しているからです。
どうやらSTはこの名前変更への互換マクロを提供する際、STM32L1のことをすっかり忘れていたようです。
この問題はコミュニティに報告済みです。