質問: こんにちは 私は、**BLENano2**というnRF52DKを用いて加速度センサ(LSM303DLHC)とI2C通信、SDカードとSPI通信をしようとしています。 開発環境はNordicのkeil uversion 5の**fatfs**(nRF5_SDK_15.0.0_a53641a)を使用しています。 まず初めにSDカードに書き込みができるか確認しようとピン番号を ``` #define SDC_SCK_PIN 2 ///< SDC serial clock (SCK) pin. #define SDC_MOSI_PIN 29 ///< SDC serial data in (DI) pin. #define SDC_MISO_PIN 30 ///< SDC serial data out (DO) pin. #define SDC_CS_PIN 28 ///< SDC chip select (CS) pin. ``` と指定し、SDカードに指定した文字列を書き込もうとしたところ、問題なく書き込むことができました。しかしI2C通信でこれらのピンの一部を使わなくてはいけないため、SPI通信のピンを ``` #define SDC_SCK_PIN 8 ///< SDC serial clock (SCK) pin. #define SDC_MOSI_PIN 6 ///< SDC serial data in (DI) pin. #define SDC_MISO_PIN 7 ///< SDC serial data out (DO) pin. #define SDC_CS_PIN 3 ///< SDC chip select (CS) pin. ``` と定義し実行したところ、SDカードのファイル内に書き込むことができませんでした。 変更したところは上記のピン番号だけで他のコードはいじっていないのですが、なぜできなのでしょうか?ピン番号以外に設定を見直す必要があるのでしょうか? スイッチサイエンスの商品説明にはこのピン番号でもSPI通信は可能であると書いてあるのですが原因と解決方法がわかる方お願いします。 この質問はここでも投稿しています。
回答: まず、そのピンの機能設定をするところをチェックしてみましょう SPI通信は可能である、ってだけで、変更無しでできるというわけではありません ああ、リンク先を見ると、そのピンだとSPIのチャネル番号が変わってしまいますね。 そこらへんも修正する必要がありますね