記一次調試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]);

這樣輸出就正常了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章