已回答假定已回答

ADXL375读取数字错误

吴江江 在 2017-8-22 詢問的問題
最後回覆由吴江江於2017-9-4提供

ADXL375 的软件已经可以读出数据,并且随着角度旋转,

输出数据也有变化,但问题是可能读取寄存器的位数

设置不对,读数并不正确。

 

附件 "ADXL375 Reading",我是把Z轴朝上放置的,读取的

Z轴数值应该是 20.5(1g) 左右,但现在出来的数值明显不对。

 

数据是从两个字节的寄存器中取低13位转化的。

*这一点 ADXL375 的Spec写的比较模糊,只能参照 ADXL345 假设

这两款的 Data Formatting 是一样的

 

附件同时包含现在在用的 cpp 文件,下记是主程序中 I2C 读取部分的代码:

   Wire.beginTransmission(ADXAddress); // 开启发送
   Wire.write(Register_Z0);//写入ADXL345寄存器映射地址
   Wire.write(Register_Z1);//写入ADXL345寄存器映射地址
   Wire.endTransmission();//结束发送
   Wire.requestFrom(ADXAddress,2); //请求ADXL345二个字节
   if(Wire.available()<=2)   //获取<=2个数据
   {
     Z0 = Wire.read();
     Z1 = Wire.read();
     Z1=Z1<<8;
     Z_out=Z0+Z1;
   }

 

请帮我们看看是什么原因

附件

結果