アプリ版:「スタンプのみでお礼する」機能のリリースについて

Arduinoにより、nRF24の無線モジュールを動かすスケッチで、
下記の行で、エラーとなります。原因が分かりません。

  done = radio.read( &c, sizeof(char) );

 エラーメッセージは下記
  error: void value not ignored as it ought to be

A 回答 (2件)

>done = radio.read( &c, sizeof(char) );// ここでエラーがおこる。


>radio.write( &c, sizeof(char) );

read()ではなくrecv()、write()ではなくsend()じゃないですか?

RF24クラスにはread()もwrite()もない…はずなんですが、その辺りどうなっているんですかねぇ……。

この回答への補足

色々、お騒がせしました。実はライブラリーのRF24.hが新旧2種類があり、古い方に入れ替えたらエラーが出なくなりました。

補足日時:2014/12/19 19:38
    • good
    • 0

使っているライブラリの所在とか掲示された方がよいかと。



http://www.airspayce.com/mikem/arduino/NRF24/
のライブラリだとread()が無いですし……。

エラーメッセージに関しては…
radio.read()の戻り値はvoid(戻り値は『無い』)なのに、doneに代入しようとしているから…っぽいですが。

この回答への補足

中身は以下のものです。
--------------------------------
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

// CEピンとCSピン番号の設定
RF24 radio(9,10);

void setup(void)
{
// 通信開始
radio.begin();

// リトライ回数の設定
radio.setRetries(15,15);

// 書き込み用のパイプを開く
radio.openWritingPipe(0xF0F0F0F0D2LL);
// 読み込み用のパイプを開く
radio.openReadingPipe(1, 0xF0F0F0F0E1LL);

radio.startListening();
}

void loop(void)
{
char c;

if ( radio.available() ) {
bool done = false;
while (!done) {
done = radio.read( &c, sizeof(char) );// ここでエラーがおこる。
delay(20);
}

radio.stopListening();

radio.write( &c, sizeof(char) );

radio.startListening();
}
}

補足日時:2014/12/19 14:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!