ここから本文です

ArduinoのSPIで複数バイトを送信、受信する方法がわかりません。SSをLowにした後、...

lw4********さん

2018/1/911:51:33

ArduinoのSPIで複数バイトを送信、受信する方法がわかりません。SSをLowにした後、そのまま連続で2バイト以上送っていいのでしょうか。それとも、1度SSを上げてから、もう1度次のデータを送り直すのでしょうか。

もしよろしければ、その部分だけ簡単なサンプルスケッチを書いて頂けると嬉しいです。
お願いします。

補足すいません、Arduino同士での双方向通信です。書き忘れてました。

閲覧数:
660
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

mt_********さん

2018/1/913:55:40

何バイトでも連続送信してかまいませんよ。
SSをLowにした後、送りたいバイト数だけSPI.transferを繰り返せばいいだけです。
もちろんスレーブ側は受信割込みを使用して取りこぼさないようにしなければいけません。
このサイトが参考になるかもです。↓
http://independence-sys.net/main/?p=3781

  • 質問者

    lw4********さん

    2018/1/913:57:45

    そのサイトは見たことあるのですが、これだと1バイトでした。要するに、このサイトのプログラムでは受信割り込みがされているので、この状態で送信を繰り返されれば繰り返し普通に受信されるということですか。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/1/9 17:25:55

ありがとうございます。
ようやく理解できました。

ベストアンサー以外の回答

1〜1件/1件中

dai********さん

2018/1/912:03:11

SPI通信では送る側と受ける側でどのようなデーターのやり取りをするかが取り決められた条件で送受されます。

1回のSS信号で何バイトのデータをどのような手順でやり取りするのかを送る側と受ける側が互いに決められた通りに通信するので送受ができるのです。

その取り決めはデバイスによって定められたものもあれば、マイコン同士で定める場合もあります。

サンプルスケッチは例えばAD変換ICやDA変換IC,EEPROMなど個別のデバイスに対して考えられるべきもので、マイコン側ではフラッグをプログラムで監視して行ったり、割り込みを用い言いて処理したり、ケースバイケースの対応が必要になります。

ご自分がどのようなデバイスを使おうとしているのか、そのSPI通信の規定はどのようになっているのかをデータシートなどから調べて、arduinoのSPI通信部分のプログラムをその規定に沿うように作らなければなりません。

そのようなサンプルはarduinoなどについての書籍などで解説された資料などを探すと良くわかると思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる