uint8_t data_buffer[64];
を宣言し、私はそれに書き、その後、私はデータのそれの店舗を見て、それを反復する必要があります。データは2つのグループで記述されます。今、私はこの
for(int i = 1; i < BUFFER_LEN + 1; i += 2)
{
if(data_buffer[i] == 0xff && data_buffer[i+1] == 0xff)
{
write_led_states(i/2 + 1, OFF);
}
else
{
write_led_states(i/2 + 1, ON);
}
}
のような厄介な何かをやっているしかし、私は多くはので、私はより多くのこのような何かを行うことができ、バッファから一度に2バイトのデータを読むことができるように好む
:
for(int i = 1; i < BUFFER_LEN + 1; i++)
{
if(data_buffer[i] == 0xffff) // where data_buffer is being read two bytes at a time
{
write_led_states(i, OFF);
}
else
{
write_led_states(i, ON);
}
}
私が何をしたいのかというのがもう一つの方法は、彼らがこのように見てから行くように、インデックスを再マッピングすることです:
[1][2][3][4][5][6][7][8]
to this like:
[1...][2...][3...][4...]
これは可能ですか?
あなたの現在のコードは、範囲外の配列にアクセスするように思えます。あなたは配列が0ベースであることを知っていますか? –
バッファの最初のバイトは使用されていませんか? ( 'data_buffer [0]') –
バッファの最初のバイトには、後続のデータ型を示すフラグが含まれています。しかし、私はそう思う、私は最後に外出している。 – Indigo