有何不可0365 发表于 2022-8-29 23:48

STM32中iic驱动mpu6050例程

一、mpu6050寄存器相关知识
1.本机地址
可在寄存器使用手册查找

mpu6050在iic中是七位地址,Bit6~Bit1是他的前六位地址,默认是110100,末位由AD0引脚的值确定,并不是该寄存器的Bit0位。
若AD0引脚置0,则mpu6050的本机地址是1101000,十六进制为0x68。

有何不可0365 发表于 2022-8-29 23:49

2.复位mpu6050
需要配置的是0x6B寄存器的Bit7位。

设置为1时,该位​​会将所有内部寄存器重置为其默认值。复位完成后,该位自动清除为0。需要延时100ms。

有何不可0365 发表于 2022-8-29 23:51

3.时钟源配置
需要配置的是0x6B寄存器的Bit2~Bit0位。

有何不可0365 发表于 2022-8-29 23:52

有何不可0365 发表于 2022-8-29 23:57

上电时,时钟源默认为内部振荡器。手册中建议将设备配置为使用陀螺仪之一(或外部时钟)作为时钟参考,可以提高稳定性。也就是1~5任选。

有何不可0365 发表于 2022-8-29 23:58

4.设置MPU6050工作模式
需要配置的是0x6B寄存器的Bit6位。

SLEEP设置为1为睡眠模式,设置为0为工作模式。

有何不可0365 发表于 2022-8-29 23:58

5.设置输出三轴陀螺仪和三轴加速度数据
需要配置的是0x6C寄存器的Bit6~Bit0位。

设置为1时,加速度计和陀螺仪置于待机模式。置0时,加速度计和陀螺仪置于开启状态。

有何不可0365 发表于 2022-8-29 23:59

6.禁止中断
需要配置的是0x38寄存器的Bit0位。

置1开启中断模式,置0关闭中断模式。

有何不可0365 发表于 2022-8-29 23:59

7.设置采样频率
需要配置的是0x38寄存器。

采样率=陀螺仪输出率/(1 + SMPLRT_DIV)

ccook11 发表于 2022-9-5 14:33

学习一下

saservice 发表于 2022-9-5 15:39

单片机的效果不知道怎么样

claretttt 发表于 2022-9-7 17:59

mpu6050如何设置为spi接口?

kkzz 发表于 2022-9-8 09:15

使用什么算法解算的姿态呢

yorkbarney 发表于 2022-9-8 11:14

使用dmp的算法了吗

Henryko 发表于 2022-9-11 21:49

怎么解算的姿态呢?

usysm 发表于 2022-9-12 13:49

这个代码有完整的工程吗

有何不可0365 发表于 2022-9-29 23:32

9.关闭辅助IIC模块
需要配置的是0x6A寄存器的Bit5位。

当I2C_MST_EN设置为1时,将启用IIC主模式;当该位清除时为0时,辅助IIC总线线路(AUX_DA和AUX_CL)由主IIC总线逻辑驱动(SDA和SCL)。

有何不可0365 发表于 2022-9-29 23:34

10.启动旁路多路复用器
需要配置的是0x37寄存器的Bit1位。

有何不可0365 发表于 2022-9-29 23:43

当I2C_BYPASS_EN等于1并且I2C_MST_EN(0x6A寄存器)等于0时,主机应用处理器将能够直接访问MPU-60X0的辅助I2C总线。 当该位等于0时,不管I2C_MST_EN的状态如何,主机应用处理器将无法直接访问MPU-60X0的辅助I2C总线。

有何不可0365 发表于 2022-9-29 23:56

配置陀螺仪的满量程范围
需要配置的是0x1B寄存器的Bit4~Bit3位。
页: [1] 2
查看完整版本: STM32中iic驱动mpu6050例程