最近心血来潮,在工具盒中找到了一块失踪已久的GY-521(MPU6050)模块,三轴加速度,三轴角速度。直接通过I2C读取即可,还是挺简单的,下面就分享源代码,以便自己以后参考,也希望能帮助到更多人。
1.硬件连线,
我是用自己做的STC89C51作为主控MCU,OLED屏幕显示数据,
模块上面引需要接的就四根线
VCC(3.3-5V),GND,SCL,SDA;两根电源,两根I2C,
2.源程序(传送门)源程序下载地址
下载源程序后,测试程序->51-code;
这里面用的数据类型是unsigned int 这会导致无法读取负数,当然啦,如果觉得不需要正负可以不改,如果要改的话,则按照我下面的方法修改:
//修改前
unsigned int GetData(unsigned char REG_Address)
{
unsigned char H,L;
H=Single_ReadI2C(REG_Address);
L=Single_ReadI2C(REG_Address+1);
return (H<<8)+L; //合成数据
}
//修改后
int GetData(unsigned char REG_Address)
{
int H,L;
H=Single_ReadI2C(REG_Address);
L=Single_ReadI2C(REG_Address+1);
return (H<<8)+L; //合成数据
}
这样都出来的数据就是带正负号的数据了,显示部分可以根据需要显示正负号。