【MPU6050】讀取地址錯誤問題,讀取ID0,209(0xd1),255
阿新 • • 發佈:2022-02-15
MPU6050初始化的問題卡住了好幾天,也參考了很多部落格,終於解決了
1.首先觀察一下模組是否有損壞
我之前的時候是用螺絲固定的,就導致模組上面有個元件掉了,之前都沒太注意。
如下圖
2.如果沒有上個問題可以繼續向下看
我是用的MCU是STM32F103C8T6,在看原子的例程裡發現,IIC初始化中有這麼一句
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
因為我使用的是HAL庫,所以對庫函式不是很瞭解,然後我去搜了一下,知道了
STM32F10X系列復位後PA13、14、15和PB3、4預設配置為JTAG功能,如果要重新作為普通IO使用,還需要禁用JTAG
下面給出HAL庫的解決辦法:
在MCU_IIC_Init函式結尾加上下面這一句就可以了
__HAL_AFIO_REMAP_SWJ_NOJTAG();
如果按照上面第二部的做法你讀取的地址還是,讀取數值是209,那麼請看下一條
3.如果讀取的數值是209(0XD1)
那麼應該是杜邦線接觸不嚴的問題,我剛開始用的麵包板連線的,需要用手扶著才能讀出104(0x68),鬆開就會有問題。
如圖
後來我把MCU和MPU6050插到PCB上讀取的數值就沒有問題了。
如圖
http://www.openedv.com/posts/list/0/59031.htm