chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

初始化 - mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

2017年12月11日 14:26 網(wǎng)絡(luò)整理 作者: 用戶(hù)評(píng)論(0

  接下來(lái),我們介紹一下利用STM32F1讀取MPU6050的加速度和角度傳感器數(shù)據(jù)(非中斷方式),需要哪些初始化步驟:

  1)初始化IIC接口

  MPU6050采用IIC與STM32F1通信,所以我們需要先初始化與MPU6050連接的SDA和SCL數(shù)據(jù)線。

  2)復(fù)位MPU6050

  這一步讓MPU6050內(nèi)部所有寄存器恢復(fù)默認(rèn)值,通過(guò)對(duì)電源管理寄存器1(0X6B)的bit7寫(xiě)1實(shí)現(xiàn)。復(fù)位后,電源管理寄存器1恢復(fù)默認(rèn)值(0X40),然后必須設(shè)置該寄存器為0X00,以喚醒MPU6050,進(jìn)入正常工作狀態(tài)。

  3)設(shè)置角速度傳感器(陀螺儀)和加速度傳感器的滿(mǎn)量程范圍

  這一步,我們?cè)O(shè)置兩個(gè)傳感器的滿(mǎn)量程范圍(FSR),分別通過(guò)陀螺儀配置寄存器(0X1B)和加速度傳感器配置寄存器(0X1C)設(shè)置。我們一般設(shè)置陀螺儀的滿(mǎn)量程范圍為±2000dps,加速度傳感器的滿(mǎn)量程范圍為±2g。

  4)設(shè)置其他參數(shù)

  這里,我們還需要配置的參數(shù)有:關(guān)閉中斷、關(guān)閉AUXIIC接口、禁止FIFO、設(shè)置陀螺儀采樣率和設(shè)置數(shù)字低通濾波器(DLPF)等。本章我們不用中斷方式讀取數(shù)據(jù),所以關(guān)閉中斷,然后也沒(méi)用到AUXIIC接口外接其他傳感器,所以也關(guān)閉這個(gè)接口。分別通過(guò)中斷使能寄存器(0X38)和用戶(hù)控制寄存器(0X6A)控制。MPU6050可以使用FIFO存儲(chǔ)傳感器數(shù)據(jù),不過(guò)本章我們沒(méi)有用到,所以關(guān)閉所有FIFO通道,這個(gè)通過(guò)FIFO使能寄存器

 ?。?X23)控制,默認(rèn)都是0(即禁止FIFO),所以用默認(rèn)值就可以了。陀螺儀采樣率通過(guò)采

  樣率分頻寄存器(0X19)控制,這個(gè)采樣率我們一般設(shè)置為50即可。數(shù)字低通濾波器(DLPF)則通過(guò)配置寄存器(0X1A)設(shè)置,一般設(shè)置DLPF為帶寬的1/2即可。

  5)配置系統(tǒng)時(shí)鐘源并使能角速度傳感器和加速度傳感器

  系統(tǒng)時(shí)鐘源同樣是通過(guò)電源管理寄存器1(0X1B)來(lái)設(shè)置,該寄存器的最低三位用于設(shè)置系統(tǒng)時(shí)鐘源選擇,默認(rèn)值是0(內(nèi)部8MRC震蕩),不過(guò)我們一般設(shè)置為1,選擇x軸陀螺PLL作為時(shí)鐘源,以獲得更高精度的時(shí)鐘。同時(shí),使能角速度傳感器和加速度傳感器,這兩個(gè)操作通過(guò)電源管理寄存器2(0X6C)來(lái)設(shè)置,設(shè)置對(duì)應(yīng)位為0即可開(kāi)啟。

  至此,MPU6050的初始化就完成了,可以正常工作了(其他未設(shè)置的寄存器全部采用默認(rèn)值即可),接下來(lái),我們就可以讀取相關(guān)寄存器,得到加速度傳感器、角速度傳感器和溫度傳感器的數(shù)據(jù)了。

  首先,我們介紹電源管理寄存器1,該寄存器地址為0X6B,各位描述如圖1.1.3所示:

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  圖1.1.3電源管理寄存器1各位描述

  其中,DEVICE_RESET位用來(lái)控制復(fù)位,設(shè)置為1,復(fù)位MPU6050,復(fù)位結(jié)束后,MPU硬件自動(dòng)清零該位。SLEEEP位用于控制MPU6050的工作模式,復(fù)位后,該位為1,即進(jìn)入了睡眠模式(低功耗),所以我們要清零該位,以進(jìn)入正常工作模式。TEMP_DIS用于設(shè)置是否使能溫度傳感器,設(shè)置為0,則使能。最后CLKSEL[2:0]用于選擇系統(tǒng)時(shí)鐘源,選擇關(guān)系如表1.1.1所示:

  表1.1.1CLKSEL選擇列表

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  默認(rèn)是使用內(nèi)部8MRC晶振的,精度不高,所以我們一般選擇X/Y/Z軸陀螺作為參考的PLL作為時(shí)鐘源,一般設(shè)置CLKSEL=001即可。

  接著,我們看陀螺儀配置寄存器,該寄存器地址為:0X1B,各位描述如圖1.1.4所示:

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  圖1.1.4陀螺儀配置寄存器各位描述

  該寄存器我們只關(guān)心FS_SEL[1:0]這兩個(gè)位,用于設(shè)置陀螺儀的滿(mǎn)量程范圍:0,±250°/S;1,±500°/S;2,±1000°/S;3,±2000°/S;我們一般設(shè)置為3,即±2000°/S,因?yàn)橥勇輧x的ADC為16位分辨率,所以得到靈敏度為:65536/4000=16.4LSB/(°/S)。

  接下來(lái),我們看加速度傳感器配置寄存器,寄存器地址為:0X1C,各位描述如圖1.1.5所示:

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  圖1.1.5加速度傳感器配置寄存器各位描述

  該寄存器我們只關(guān)心AFS_SEL[1:0]這兩個(gè)位,用于設(shè)置加速度傳感器的滿(mǎn)量程范圍:0,±2g;1,±4g;2,±8g;3,±16g;我們一般設(shè)置為0,即±2g,因?yàn)榧铀俣葌鞲衅鞯腁DC也是16位,所以得到靈敏度為:65536/4=16384LSB/g。

  接下來(lái),我看看FIFO使能寄存器,寄存器地址為:0X1C,各位描述如圖1.1.6所示:

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  圖1.1.6FIFO使能寄存器各位描述

  該寄存器用于控制FIFO使能,在簡(jiǎn)單讀取傳感器數(shù)據(jù)的時(shí)候,可以不用FIFO,設(shè)置對(duì)應(yīng)位為0即可禁止FIFO,設(shè)置為1,則使能FIFO。注意加速度傳感器的3個(gè)軸,全由1個(gè)位(ACCEL_FIFO_EN)控制,只要該位置1,則加速度傳感器的三個(gè)通道都開(kāi)啟FIFO了。

  接下來(lái),我們看陀螺儀采樣率分頻寄存器,寄存器地址為:0X19,各位描述如圖1.1.7所示:

  mpu6050六軸傳感器模塊驅(qū)動(dòng)程序源代碼分享

  圖1.1.7陀螺儀采樣率分頻寄存器各位描述

  該寄存器用于設(shè)置MPU6050的陀螺儀采樣頻率,計(jì)算公式為:

  采樣頻率=陀螺儀輸出頻率/(1+SMPLRT_DIV)

  這里陀螺儀的輸出頻率,是1Khz或者8Khz,與數(shù)字低通濾波器(DLPF)的設(shè)置有關(guān),當(dāng)DLPF_CFG=0/7的時(shí)候,頻率為8Khz,其他情況是1Khz。而且DLPF濾波頻率一般設(shè)置為采樣率的一半。采樣率,我們假定設(shè)置為50Hz,那么SMPLRT_DIV=1000/50-1=19。

非常好我支持^.^

(254) 99.6%

不好我反對(duì)

(1) 0.40000000000001%

( 發(fā)表人:金巧 )

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?