上記の問題を発見しました。STM32 HAL のバグだと思われます。
表記のとおりで、以下の環境で再現を確認しています。 おそらく他の品種(STM32Lxxなど)でも発生すると考えています。
- Ubuntu 16.04 LTS
- Cube IDE 1.1.0
- Nucleo F722 (STM32Cube FW_F7 v1.15.0)
- Nucleo G431 (46pin, STM32Cube FW_G4 v1.1.0)
この問題はコミュニティに報告済みです。
追記:続報を書きました。ST のコミュニティは軽く燃えていましたが、時期アップデートで修正されるとST社員からコメントがついています。
確認したところ、ふつうに動作するみたいです。
ここのコードをチェックしてみてください。
https://github.com/kotetsuy/STM32Test/tree/master/UARTDMATest
動くケースもあるのですね。本文に追記しましたが、STは次期アップデートでこの問題を修正するとのことです。