7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
SMPLRT_DIV[7:0] |
采樣頻率=陀螺儀輸出頻率/(1+SMPLRT_DIV)
(6) 配置寄存器 (地址:0x1A)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
- | - | EXT_SYNC_SET[2:0] | DLPF_CFG[2:0] |
Bit 5~Bit 3:該段內的值確定采樣的值將代替傳感器數據寄存器中的最低有效位
0:輸入禁用
1:TEMP_OUT_L寄存器第0位
2:GYRO_XOUT_L寄存器第0位
3:GYRO_YOUT_L寄存器第0位
4:GYRO_ZOUT_L寄存器第0位
5:ACCEL_XOUT_L寄存器第0位
6:ACCEL _YOUT_L寄存器第0位
7:ACCEL _ZOUT_L寄存器第0位
Bit 2~Bit 0:低通濾波器設置
值 | 加速度傳感器(Fs=1kHz) | 角速度傳感器 |
---|---|---|
帶寬(Hz) | 延遲(ms) | 帶寬(Hz) |
000 | 260 | 0 |
001 | 184 | 2.0 |
010 | 94 | 3.0 |
011 | 44 | 4.9 |
100 | 21 | 8.5 |
101 | 10 | 13.8 |
110 | 5 | 19.0 |
111 | 保留 | 保留 |
(7) 電源管理寄存器2 (地址:0x6C)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
LP_WAKE_CTRL[1:0] | STBY_XA | STBY_YA | STBY_ZA | STBY_XG | STBY_YG | XTBY_ZG |
Bit 7~Bit 6:低功耗模式下的喚醒頻率
0:1.25Hz
1:5Hz
2:20Hz
3:40Hz
Bit 5:X軸加速度待機模式
0:禁用
1:啟用
Bit 4:Y軸加速度待機模式
0:禁用
1:啟用
Bit 3:Z軸加速度待機模式
0:禁用
1:啟用
Bit 2:X軸陀螺儀待機模式
0:禁用
1:啟用
Bit 1:Y軸陀螺儀待機模式
0:禁用
1:啟用
Bit 0:Z軸陀螺儀待機模式
0:禁用
1:啟用
19.3.2 源代碼
(1)創建mpu6050.h文件,輸入以下代碼。
/*********************************************************************************************************
MUP6050 驅 動 文 件
*********************************************************************************************************/
#ifndef _MPU6050_H_
#define _MPU6050_H_
#include "sys.h"
/*********************************************************************************************************
硬 件 端 口 定 義
*********************************************************************************************************/
#define MPU_IIC_SCL PBout( 10) //SCL
#define MPU_IIC_SDA PBout( 11 ) //SDA
#define MPU_READ_SDA PBin( 11 ) //輸入SDA
#define MPU_AD0_CTRL PAout( 15 ) //控制AD0電平,從而控制MPU地址
/*********************************************************************************************************
數 據 結 構 定 義
*********************************************************************************************************/
//如果AD0腳(9腳)接地,IIC地址為0X68(不包含最低位)
//如果接V3.3,則IIC地址為0X69(不包含最低位)
#define MPU_ADDR 0X68
#define MPU_ACCEL_OFFS_REG 0X06 //accel_offs寄存器,可讀取版本號,寄存器手冊未提到
#define MPU_PROD_ID_REG 0X0C //prod id寄存器,在寄存器手冊未提到
#define MPU_SELF_TESTX_REG 0X0D //自檢寄存器X
#define MPU_SELF_TESTY_REG 0X0E //自檢寄存器Y
#define MPU_SELF_TESTZ_REG 0X0F //自檢寄存器Z
#define MPU_SELF_TESTA_REG 0X10 //自檢寄存器A
#define MPU_SAMPLE_RATE_REG 0X19 //采樣頻率分頻器
#define MPU_CFG_REG 0X1A //配置寄存器
#define MPU_GYRO_CFG_REG 0X1B //陀螺儀配置寄存器
#define MPU_ACCEL_CFG_REG 0X1C //加速度計配置寄存器
#define MPU_MOTION_DET_REG 0X1F //運動檢測閥值設置寄存器
#define MPU_FIFO_EN_REG 0X23 //FIFO使能寄存器
#define MPU_I2CMST_CTRL_REG 0X24 //IIC主機控制寄存器
#define MPU_I2CSLV0_ADDR_REG 0X25 //IIC從機0器件地址寄存器
#define MPU_I2CSLV0_REG 0X26 //IIC從機0數據地址寄存器
#define MPU_I2CSLV0_CTRL_REG 0X27 //IIC從機0控制寄存器
#define MPU_I2CSLV1_ADDR_REG 0X28 //IIC從機1器件地址寄存器
#define MPU_I2CSLV1_REG 0X29 //IIC從機1數據地址寄存器
#define MPU_I2CSLV1_CTRL_REG 0X2A //IIC從機1控制寄存器
#define MPU_I2CSLV2_ADDR_REG 0X2B //IIC從機2器件地址寄存器
#define MPU_I2CSLV2_REG 0X2C //IIC從機2數據地址寄存器
#define MPU_I2CSLV2_CTRL_REG 0X2D //IIC從機2控制寄存器
#define MPU_I2CSLV3_ADDR_REG 0X2E //IIC從機3器件地址寄存器
#define MPU_I2CSLV3_REG 0X2F //IIC從機3數據地址寄存器
#define MPU_I2CSLV3_CTRL_REG 0X30 //IIC從機3控制寄存器
#define MPU_I2CSLV4_ADDR_REG 0X31 //IIC從機4器件地址寄存器
#define MPU_I2CSLV4_REG 0X32 //IIC從機4數據地址寄存器
#define MPU_I2CSLV4_DO_REG 0X33 //IIC從機4寫數據寄存器
#define MPU_I2CSLV4_CTRL_REG 0X34 //IIC從機4控制寄存器
#define MPU_I2CSLV4_DI_REG 0X35 //IIC從機4讀數據寄存器
#define MPU_I2CMST_STA_REG 0X36 //IIC主機狀態寄存器
#define MPU_INTBP_CFG_REG 0X37 //中斷/旁路設置寄存器
#define MPU_INT_EN_REG 0X38 //中斷使能寄存器
#define MPU_INT_STA_REG 0X3A //中斷狀態寄存器
#define MPU_ACCEL_XOUTH_REG 0X3B //加速度值,X軸高8位寄存器
#define MPU_ACCEL_XOUTL_REG 0X3C //加速度值,X軸低8位寄存器
#define MPU_ACCEL_YOUTH_REG 0X3D //加速度值,Y軸高8位寄存器
#define MPU_ACCEL_YOUTL_REG 0X3E //加速度值,Y軸低8位寄存器
#define MPU_ACCEL_ZOUTH_REG 0X3F //加速度值,Z軸高8位寄存器
#define MPU_ACCEL_ZOUTL_REG 0X40 //加速度值,Z軸低8位寄存器
#define MPU_TEMP_OUTH_REG 0X41 //溫度值高八位寄存器
#define MPU_TEMP_OUTL_REG 0X42 //溫度值低8位寄存器
#define MPU_GYRO_XOUTH_REG 0X43 //陀螺儀值,X軸高8位寄存器
#define MPU_GYRO_XOUTL_REG 0X44 //陀螺儀值,X軸低8位寄存器
#define MPU_GYRO_YOUTH_REG 0X45 //陀螺儀值,Y軸高8位寄存器
#define MPU_GYRO_YOUTL_REG 0X46 //陀螺儀值,Y軸低8位寄存器
#define MPU_GYRO_ZOUTH_REG 0X47 //陀螺儀值,Z軸高8位寄存器
#define MPU_GYRO_ZOUTL_REG 0X48 //陀螺儀值,Z軸低8位寄存器
#define MPU_I2CSLV0_DO_REG 0X63 //IIC從機0數據寄存器
#define MPU_I2CSLV1_DO_REG 0X64 //IIC從機1數據寄存器
#define MPU_I2CSLV2_DO_REG 0X65 //IIC從機2數據寄存器
#define MPU_I2CSLV3_DO_REG 0X66 //IIC從機3數據寄存器
#define MPU_I2CMST_DELAY_REG 0X67 //IIC主機延時管理寄存器
#define MPU_SIGPATH_RST_REG 0X68 //信號通道復位寄存器
#define MPU_MDETECT_CTRL_REG 0X69 //運動檢測控制寄存器
#define MPU_USER_CTRL_REG 0X6A //用戶控制寄存器
#define MPU_PWR_MGMT1_REG 0X6B //電源管理寄存器1
#define MPU_PWR_MGMT2_REG 0X6C //電源管理寄存器2
#define MPU_FIFO_CNTH_REG 0X72 //FIFO計數寄存器高八位
#define MPU_FIFO_CNTL_REG 0X73 //FIFO計數寄存器低八位
#define MPU_FIFO_RW_REG 0X74 //FIFO讀寫寄存器
#define MPU_DEVICE_ID_REG 0X75 //器件ID寄存器
/*********************************************************************************************************
函 數 列 表
*********************************************************************************************************/
void MPU_IIC_Init( void ) ; //初始化IIC
u8 MPU_Init( void ) ; //初始化MPU6050
u8 MPU_Read_Len( u8 addr, u8 reg, u8 len, u8 *buf ) ; //IIC連續讀
u8 MPU_Write_Len( u8 addr, u8 reg, u8 len, u8 *buf ) ; //IIC連續寫
short MPU_Get_Temperature( void ) ; //獲取溫度
u8 MPU_Get_Gyroscope( short *gx, short *gy, short *gz ) ; //獲取陀螺儀值
u8 MPU_Get_Accelerometer( short *ax, short *ay, short *az ) ; //獲取加速度值
#endif
-
傳感器
+關注
關注
2553文章
51467瀏覽量
756940 -
處理器
+關注
關注
68文章
19440瀏覽量
231315 -
MPU6050
+關注
關注
39文章
307瀏覽量
71696
發布評論請先 登錄
相關推薦
基于stm32的mpu6050傳感器實驗 精選資料推薦
MPU6050六軸傳感器簡析
mpu6050六軸傳感器模塊驅動程序源代碼分享
![<b class='flag-5'>mpu6050</b>六軸<b class='flag-5'>傳感器</b>模塊驅動程序源代碼分享](https://file1.elecfans.com//web2/M00/A7/11/wKgZomUMQiqAO9AgAABFUN4oz2g049.png)
使用STM32單片機讀取MPU6050傳感器數據的程序免費下載
![使用<b class='flag-5'>STM32</b>單片機讀取<b class='flag-5'>MPU6050</b><b class='flag-5'>傳感器</b>數據的程序免費下載](https://file.elecfans.com/web1/M00/9E/E5/pIYBAF06yY-AQAJkAAri_-wt3LM751.png)
基于stm32的mpu6050傳感器實驗
![基于<b class='flag-5'>stm32</b>的<b class='flag-5'>mpu6050</b><b class='flag-5'>傳感器</b><b class='flag-5'>實驗</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32復習筆記(十六)MPU6050六軸傳感器
![<b class='flag-5'>STM32</b>復習<b class='flag-5'>筆記</b>(十六)<b class='flag-5'>MPU6050</b>六軸<b class='flag-5'>傳感器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32入門學習筆記之MPU6050傳感器解析實驗1
![<b class='flag-5'>STM32</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>MPU6050</b><b class='flag-5'>傳感器</b><b class='flag-5'>解析</b><b class='flag-5'>實驗</b>1](https://file.elecfans.com/web2/M00/92/04/pYYBAGPt0ayAXp0CAAB9ZFNNSXo681.jpg)
評論