MPU6050電路自檢失敗解決方案

2021-09-02 05:10:50 字數 1287 閱讀 2463

自己焊接的mpu6050模組在初始化始終不通過。

mpu_init()

;//初始化mpu6050

while

(mpu_dmp_init()

)

發現是掛在mpu_dmp_init,return 8

//mpu6050,dmp初始化

//返回值:0,正常

// 其他,失敗

u8 mpu_dmp_init

(void

)return0;

}

再看run_self_test函式:

//mpu6050自測試

//返回值:0,正常

// 其他,失敗

u8 run_self_test

(void);

long gyro[3]

, accel[3]

; result =

mpu_run_self_test

(gyro, accel);if

(result ==

0x3)

else

return1;

}

其中mpu_run_self_test返回的是0.

再看mpu_run_self_test,忽略其中的#define,核心內容如下:

accel_result =

accel_self_test

(accel, accel_st)

; gyro_result =

gyro_self_test

(gyro, gyro_st)

; result =0;

if(!gyro_result)

result |

=0x01;if

(!accel_result)

result |

=0x02

;return result;

再往下就是讀協議的事情了,iic通訊是沒有問題的,初步懷疑是焊接時溫度過高導致內部重力和加速度模組失效了,因為跳過自檢後發現溫度是可以正常獲取的。

重新焊接換乙個,熱風槍溫度調到270度,吹完用烙鐵280度補錫,發現依然卡在這裡。

仔細檢查電路圖:

發現,c76、c77沒有焊接,試探性的補上,成功讀取資料,ok了~

MPU6050資料讀取

iicreadbytes devaddr,mpu6050 ra accel xout h,14,buffer 對於加計x軸的資料,buffer 0 存放高位 0xff,buffer 1 0x40存放低位 計算方法 if buffer 0 0x7f mpu6050 lastax buffer 0 25...

mpu6050 z軸校準 MPU6050校準

前用匿名四軸的 稱植過來發現求出的 pitch 與roll 一直不斷的增加,不知道什麼原因,靜止放著也不行。看了不少四元數的資料,能看懂,但是結合資料融合又糊了。加上卡爾漫資料也就那樣,可 能是我處理得有問題。偶然翻帖看到了 dmp,於是打算移植過來看看。花了兩三的時間總算成功了。現在把一些移植過程...

MPU6050 加速計濾波

加速度計濾波實驗引數 取樣頻率fs 250hz 截止頻率cutoff frequency 未開電機靜止 開電機懸停 未開電機轉動飛控 原始輸出 raw 260 hz 260hz 260hz mpu6050內部 lpf 94 hz 94 hz 94 hz 2階 butterworth 30 hz 30...