最近一直在学习iic,然后移植各种传感器的程序,今天做mpu6050,时候陀螺仪和加速度还有温度的数据都能读出来,但总感觉数据不对,和别人的程序读出来的数据差别很大,温度还有奇葩的跳变,各种改各种纠结,后来仔细一看在变量定义的时候和别人的有点不一样再申明变量是我用的是int型(int G_X,G_Y,G_Z;
int A_X,A_Y,A_Z;
int Temp ,Temperature;
)读出来的数都很大,总是在65536左右浮动,后来试着把int全改为short后数据正常了,百度了半天没看明白,从百度粘来: short是16位,int最少是16位,32位平台上int一般是32位。
现在基本都是32位机为平台编译器,其中,int 是4个字节的,short是2个字节的。
short又名短整形,当然是比int取值范围小。
short是-65535 ~ 65535 一般情况下,你有可能是所处理的数据大于65KBit
short也就不能满足你的需要了,所以要采用int。求解释 |
|