我正在从加速度计获取数据,并试图将其记录到文件中。然而,我对得到的输出有点困惑。我只记录一个示例,以确保数据写入正确。
我创建了以下结构体来分组数据:
struct AccData
{
int16_t x;
int16_t y;
int16_t z;
unsigned int time;
};
以上内容总共应该是10个字节。
我正在编写stdout并从传感器获取以下数据:
I(15866)加速度计:测量:X25Y25248 时间:10
存储在sd卡上的数据看起来像这样:
1900 fc00300000000a00将它们分开得到:
1900 FC00 3000 00000A00
这就是我开始感到困惑的地方。前3个扇区只有在我颠倒字节的顺序时才有意义,这样:
1900 -> 0019 = 25
1900 -> 0019 = 25
3000 -> 0030 = 48
00000A00 -> 000A0000 = 655.360
就像@Someprogrammerdude在评论中指出的那样,这与尾序和我的结构被填充的事实有关,导致结构是12位而不是10位。
考虑填充的数据现在看起来像这样:1900FC00 30000000 0A000000,
读上面的小端序是有意义的。