STM32中iic驱动mpu6050例程
一、mpu6050寄存器相关知识1.本机地址
可在寄存器使用手册查找
mpu6050在iic中是七位地址,Bit6~Bit1是他的前六位地址,默认是110100,末位由AD0引脚的值确定,并不是该寄存器的Bit0位。
若AD0引脚置0,则mpu6050的本机地址是1101000,十六进制为0x68。
2.复位mpu6050
需要配置的是0x6B寄存器的Bit7位。
设置为1时,该位会将所有内部寄存器重置为其默认值。复位完成后,该位自动清除为0。需要延时100ms。
3.时钟源配置
需要配置的是0x6B寄存器的Bit2~Bit0位。
上电时,时钟源默认为内部振荡器。手册中建议将设备配置为使用陀螺仪之一(或外部时钟)作为时钟参考,可以提高稳定性。也就是1~5任选。 4.设置MPU6050工作模式
需要配置的是0x6B寄存器的Bit6位。
SLEEP设置为1为睡眠模式,设置为0为工作模式。 5.设置输出三轴陀螺仪和三轴加速度数据
需要配置的是0x6C寄存器的Bit6~Bit0位。
设置为1时,加速度计和陀螺仪置于待机模式。置0时,加速度计和陀螺仪置于开启状态。 6.禁止中断
需要配置的是0x38寄存器的Bit0位。
置1开启中断模式,置0关闭中断模式。 7.设置采样频率
需要配置的是0x38寄存器。
采样率=陀螺仪输出率/(1 + SMPLRT_DIV) 学习一下 单片机的效果不知道怎么样 mpu6050如何设置为spi接口? 使用什么算法解算的姿态呢 使用dmp的算法了吗 怎么解算的姿态呢? 这个代码有完整的工程吗 9.关闭辅助IIC模块
需要配置的是0x6A寄存器的Bit5位。
当I2C_MST_EN设置为1时,将启用IIC主模式;当该位清除时为0时,辅助IIC总线线路(AUX_DA和AUX_CL)由主IIC总线逻辑驱动(SDA和SCL)。 10.启动旁路多路复用器
需要配置的是0x37寄存器的Bit1位。
当I2C_BYPASS_EN等于1并且I2C_MST_EN(0x6A寄存器)等于0时,主机应用处理器将能够直接访问MPU-60X0的辅助I2C总线。 当该位等于0时,不管I2C_MST_EN的状态如何,主机应用处理器将无法直接访问MPU-60X0的辅助I2C总线。 配置陀螺仪的满量程范围
需要配置的是0x1B寄存器的Bit4~Bit3位。
页:
[1]
2