0

私は長い間ハードウェア デバイスに対するプログラミングを扱っていなかったので、ほとんどすべての基本を忘れていました。

1 バイトで何を送信するかの仕様があり、各ビットは最上位ビット (bit7) から最下位ビット (ビット 0) まで定義されています。このバイトを構築するにはどうすればよいですか? MSB から LSB、またはその逆ですか?

4

3 に答える 3

6

これらのビットが「パケット化」されている場合(通常はパケット化されています)、ビットの順序はネイティブの順序であり、0はLSB、7はMSBです。通常、ビットは1つずつ送信されるのではなく、バイトとして送信されます(通常は1バイト以上...)。

ウィキペディアによると、ビットの順序は7-> 0の場合もありますが、これはおそらくまれなケースです。

于 2009-10-08T07:07:34.647 に答える
2

バイト全体を同時に書き込む場合、つまり、シリアルではなくパラレル転送を行う場合、ビットの順序は重要ではありません。

転送シリアルの場合、デバイスがビットを期待する順序を確認する必要があります。外部からはわかりません。

8 ビットから 1 バイトを組み立てるには、ビット単位の OR を使用してビットを 1 つずつ「追加」します。

byte value = 0;

value |= (1 << n);  // 'n' is the index, with 0 as the LSB, of the bit to set.
于 2009-10-08T06:56:10.113 に答える
1

仕様に MSB と記載されている場合は、MSB をビルドします。それ以外の場合、仕様に LSB と記載されている場合は、LSB をビルドします。それ以外の場合は、詳細を尋ねてください。

于 2009-10-08T06:53:14.253 に答える