记一次调试BUG: MPU6050输出为0

在调试MPU6050时,读WHO AM I寄存器可以得到0x68,证明i2c没问题,但读取数据时,log打出来的总是0

翻阅网上各种文章,复位,延时,都试了,不好使。

后来仔细检查代码发现

gyro[0] = tmp[0]<<8 + tmp[1];

直接将寄存器的数据拼接打印出来了。

看datasheet里写的是:16位二进制补码

于是将拼接后的数转为原码,依然不好使。

再检查代码发现,<<优先级比+要低,加括号后改为

gyro[0] = comp2raw((tmp[0]<<8) + tmp[1]);

这样输出就正常了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值