MSP430内存对齐问题,对数据进行内存调整

从传感器采集到的数据Dx,Dy,Dz,整型数据,高字节在前,由于地层函数已经写好,直接把传感器输出的六个字节存放到一个连续的内存空间中。
现在把一个整型数组地址传递给采集函数,但由于430内部的内存对齐问题,使得数据的高字节和低字节颠倒了。故需要进行内存调整。

1
2
3
4
5
6
7
8
9
  IRcvStr(0X3C,0X03,(u8*)XYZ_RoughVal,6);                      //读取X,Y,Z轴上的值  
  //解决内存对齐问题,进行内存调整。由于传感器输出的数据高字节先输出,而430内部低字节存放的是int数据的低字节
  for (i=0;i<3;i++)
  {
    j = i*2;
    MemTemp = (u8)*((u8*)XYZ_RoughVal+j);
    *((u8*)XYZ_RoughVal+j) = (u8)*((u8*)XYZ_RoughVal+j+1);
    *((u8*)XYZ_RoughVal+j+1) = MemTemp;
  }

发表评论

电子邮件地址不会被公开。 必填项已用*标注