SDカード初期化コードの注意点
STM32CubeMXでSDカードの初期化コードが生成されますが、その際の注意点を記します。SDカードの初期化時にシリアル通信でのデータ受け渡しがあり、CPUのポートを一時的にシリアル通信に設定しなければなりません。STM32CubeMXの設定で最初からシリアル通信でポートを設定してしまうと通常SDアクセス時(今回は4ビットアクセス)関連のコードが生成され無くなってしまいます。
ダウンロードしたSTM32CubeMXプロジェクトで生成したソースコードを以下のように修正することで対応します。
main.cファイル内 MX_SDMMC1_SD_Init関数内 BusWideをSDMMC_BUS_WIDE_1Bとします。
