模块可以读出原始数据,是模块卖家给的资料,但是不知道怎么转换角度
[mw_shl_code=c,true]void main()
{
delay(500); //上电延时
// InitLcd(); //液晶初始化
init_uart();
InitMPU6050(); //初始化MPU6050
delay(150);
while(1)
{
Display10BitData(GetData(ACCEL_XOUT_H));//显示X轴加速度
Display10BitData(GetData(ACCEL_YOUT_H)); //显示Y轴加速度
Display10BitData(GetData(ACCEL_ZOUT_H)); //显示Z轴加速度
Display10BitData(GetData(GYRO_XOUT_H)); //显示X轴角速度
Display10BitData(GetData(GYRO_YOUT_H)); //显示Y轴角速度
Display10BitData(GetData(GYRO_ZOUT_H)); //显示Z轴角速度
SeriPushSend(0x0d);
SeriPushSend(0x0a);//换行,回车
delay(100);
}
}[/mw_shl_code]
[mw_shl_code=c,true]int GetData(uchar REG_Address)
{
uchar H,L;
H=Single_ReadI2C(REG_Address);
L=Single_ReadI2C(REG_Address+1);
H=(H<<8)+L;
//H=((float)(H<<8| L))/32768.0*180;
return H; //合成数据
}[/mw_shl_code]
[mw_shl_code=c,true]void Display10BitData(int value)
{
uchar i;
//value/=64; //转换为10位数据
lcd_printf(dis, value); //转换数据显示
for(i=0;i<6;i++)
{
SeriPushSend(dis);
}[/mw_shl_code]
[mw_shl_code=c,true]void lcd_printf(uchar *s,int temp_data)
{
if(temp_data<0)
{
temp_data=-temp_data;
*s='-';
}
else *s=' ';
*++s =temp_data/10000+0x30;
temp_data=temp_data%10000; //取余运算
*++s =temp_data/1000+0x30;
temp_data=temp_data%1000; //取余运算
*++s =temp_data/100+0x30;
temp_data=temp_data%100; //取余运算
*++s =temp_data/10+0x30;
temp_data=temp_data%10; //取余运算
*++s =temp_data+0x30;
}[/mw_shl_code]
以上是主要的程序了,求大神指点下 |