女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

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

  1)初始化IIC接口

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

  2)復(fù)位MPU6050

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  表1.1.1CLKSEL選擇列表

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

非常好我支持^.^

(254) 99.6%

不好我反對

(1) 0.40000000000001%

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

      發(fā)表評論

      用戶評論
      評價:好評中評差評

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

      ?