STM32CubeMXのHALライブラリには ELM by ChaN さんの開発したFatFSが含まれていてSDカードやUSBメモリにFAT16,FAT32,exFATが使えるファイルシステムを簡単に作ることが出来ます。
動作確認したHALライブラリのバージョン
ただし2017/02/13現在確認したところ動作したのは次のV1.5.0で
OK: STM32CubeF7 Firmware Package V1.5.0 / 23-September-2016
Ver1.5.1とVer1.6.0ではランダムにDiskErrorが発生します。
ねむいさんによるとこれはHAL Driverのバグではないかということです。
私のように無闇に最新バージョンにアップデートすると痛い目をみることになるのでVer1.5.0を使うようにしましょう。
NG: STM32CubeF7 Firmware Package V1.5.1 / 07-October-2016
NG: STM32CubeF7 Firmware Package V1.6.0 / 30-December-2016
SDMMCのクロック
最初はClock divide factor =2(12MHz)で動作しているように思ったのですがファイル書き込みを繰り返してテストするとDiskErrorが発生、結局SDMMC1に設定する Clock divide factor は16が限界で(2.67MHz)、それ以上のクロックではDhiskErrorが発生しました。
STM32F769Discoveryでは最低でも12MHzで動作しているようなのでSTM32F765のライブラリにまだ問題があるのかもしれません。
今回の目的にはこのスピードで間に合うのでとりあえずよしとします
(追記)
古い2GのSDカードでテストしたところまたDISKERRが出てClock divide factorを25にして安定して書き込めるようになりました。
DISKERRはクロックを上げると出始め、クロックを下げるとエラーが無くなるので問題の原因はタイミングということで間違いないと思います。