私は、自動販売機からデータを読み取るための小さなCテストプログラムを作成しようとしています。私は回路が繋がっている、今は難しい部分はコードです。 本機は9個のデータビットを必要とするUARTを使用します。ここに私のコードです。完全な9ビットデータ型に直接書き込むことはできませんが、その要素に書き込むことはできません。機能において 'ボイドループ()': rx.cpp:11:12:エラー: '演算子=' の不一致(オペランドタイプが ' 'nineBit' であり、C要素だけでなく、データ構造全体に値を書き込むにはどうすればよいですか?
struct nineBit { //To make 9 bit character types for an array.
unsigned int data : 8; //8 data bits.
unsigned int mode : 1; //1 'mode' bit.
} data[35]; //Make an array of 9 bit data to store the incoming data block.
void setup() {
Serial1.begin(9600, SERIAL_9N1); //Start the UART.
}
void loop() {
data[0] = Serial1.read(); //Works if 'data[0].data is entered instead.
//How can I transfer this all in one command?
}
エラーは rx.cppありますINT ') 無効セットアップ(){ ^
rx.cpp:11:12: note: candidates are:
rx.cpp:1:8: note: nineBit& nineBit::operator=(const nineBit&)
^
rx.cpp:1:8: note: no known conversion for argument 1 from 'int' to 'const nineBit&'
rx.cpp:1:8: note: nineBit& nineBit::operator=(nineBit&&)
rx.cpp:1:8: note: no known conversion for argument 1 from 'int' to 'nineBit&&'
make[1]: *** [../build/target/user/platform-6rx.o] Error 1
make: *** [user] Error 2
Error: Could not compile. Please review your code.
あなたは[0] =(構造体nineBit *)Serial1.readは() 'データを試してみましたか;'? –