私は長い間ハードウェア デバイスに対するプログラミングを扱っていなかったので、ほとんどすべての基本を忘れていました。
1 バイトで何を送信するかの仕様があり、各ビットは最上位ビット (bit7) から最下位ビット (ビット 0) まで定義されています。このバイトを構築するにはどうすればよいですか? MSB から LSB、またはその逆ですか?
これらのビットが「パケット化」されている場合(通常はパケット化されています)、ビットの順序はネイティブの順序であり、0はLSB、7はMSBです。通常、ビットは1つずつ送信されるのではなく、バイトとして送信されます(通常は1バイト以上...)。
ウィキペディアによると、ビットの順序は7-> 0の場合もありますが、これはおそらくまれなケースです。
バイト全体を同時に書き込む場合、つまり、シリアルではなくパラレル転送を行う場合、ビットの順序は重要ではありません。
転送がシリアルの場合、デバイスがビットを期待する順序を確認する必要があります。外部からはわかりません。
8 ビットから 1 バイトを組み立てるには、ビット単位の OR を使用してビットを 1 つずつ「追加」します。
byte value = 0;
value |= (1 << n); // 'n' is the index, with 0 as the LSB, of the bit to set.
仕様に MSB と記載されている場合は、MSB をビルドします。それ以外の場合、仕様に LSB と記載されている場合は、LSB をビルドします。それ以外の場合は、詳細を尋ねてください。