airspayce.com の RadioHead Packet Radio ライブラリを使用しています。例 (nrf24_reliable_datagram_client & server) では、文字列を前後に送信することで 2 つのノードが互いに通信できるようにしています。ここで、文字列の代わりに int を送信し、このデータで何かをしたいと考えています。これは、例で行うことです。
buf バイトを定義します。
uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
この関数は次のデータを受け取ります。
manager.recvfromAckTimeout(buf, &len, 500, &from)
buf 変数を出力します。
Serial.print((char*)buf);
これまでのところとても良い.今私は次のようなことをしたい:
int value = (char*)buf;
または:
char value[10] = { (char*)buf };
しかし、私は得る:
invalid conversion from 'char*' to 'int' (or to 'char'...)
その次に、データを送信している反対側には、次のものがあります。
uint8_t data[] = { analogRead(A0) };
最初の質問のコードを使用して受信側でこのデータを印刷すると、奇妙な文字が表示されます。だから私は思った、試してみましょう:
Serial.print((char*)buf, DEC); // or BYTE
しかし、私は得る:
call of overloaded 'print(char*, int)' is ambiguous
私は何を間違っていますか?前もって感謝します!