高级会员
- 积分
- 950
- 威望
- 492
- 贡献
- 284
- 兑换币
- 313
- 注册时间
- 2015-4-22
- 在线时间
- 87 小时
- 毕业学校
- 武汉理工大学
|
请问下大家读取的例程是什么的 2g量程只能读到1000左右,数据处理也不太懂,帮忙看下这样有什么问题吗
uint8_t checkflg=0;
uint8 XYZ_CFG_Data ;
while(checkflg !=1) //测试灯不闪烁,线未连接,查找硬件问题
{
checkflg = IIC_ReadAddr_byte(MMA8451_RADDR, MMA8451_DSR, &XYZ_CFG_Data);
delay_1us(100); // 延时100us
}
if(XYZ_CFG_Data&0x80)
{
checkflg=0;
while(checkflg !=1) //测试灯不闪烁,线未连接,查找硬件问题
{
checkflg=IIC_ReadAddr(MMA8451_RADDR, MMA8451_XOUT, XYZ_Data, 6);
delay_1us(100); // 延时100us
}
}
for(int i=0;i<3;i++)
{
AdColle[i+3]=( XYZ_Data[i*2]<<8|XYZ_Data[i*2+1] )>>4; //MMA8451 AD采集14位 向右移4位,数据位一个12位的AD采集精度
if(AdColle[i+3]>=0x0800)AdColle[i+3]= 0 - ( ( ~AdColle[i+3] )&0x07ff );
//数据转换,根据数据手册MMA8451Q 第47页 Table 75. Accelerometer Output Data
//将数据转化为一个 +-2g的范围
}
|
|