MPU6050姿态传感器在KeilSTM32上的初始化

1.IIC初始化

/*SCL_PIN SDA_PIN I2C2_GPIO为自定义*/
void MPU_IIC_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStrucSUCCESS;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  , ENABLE);
    GPIO_InitStrucSUCCESS.GPIO_Pin = SCL_PIN | SDA_PIN;
	
    GPIO_InitStrucSUCCESS.GPIO_Speed = GPIO_Speed_50MHz;
	
    GPIO_InitStrucSUCCESS.GPIO_Mode = GPIO_Mode_Out_OD;
	
    GPIO_Init(I2C2_GPIO, &GPIO_InitStrucSUCCESS);
}

2.MPU6050初始化

(1)参考MPU6050寄存器映射

首先做到为MPU6050复位,将PWR_MGMT_1寄存器Bit3置1:复位

(2)延迟100ms

(3)激活(复位后激活)

        与(1)相同,PWR_MGMT_1寄存器,Bit3置为0

(4)设置采样频率,目标值为200Hz,每5ms采样一次加速度计和陀螺仪的三轴的值

                

        在这个寄存器中,我们只需设置Bit0 - Bit7 ,假设为x

        1000 Hz/(SMPLRT_DIV+1)=200Hz  SMPLRT_DIV=0x04

        (SMPLRT_DIV+1)得5

        x就是SMPLRT_DIV,就是 0x04 = 4;

        200Hz为目标值,1000Hz是基准值

(5)所谓的三轴加速度计陀螺仪就是一个加速度计和一个陀螺仪,

        使用前要进行量程的设置

        1)加速度量程设置

        

                在此寄存器中,Bit3和Bit4决定

                

                本次设置为4g,(g为重力加速度)这意味着加速度计可以测量的加速度范围是从-4g到+4g。所以Bit4 =  0;Bit3 = 1;

        2)加速度量程设置,同理设置为+-2000°/s(一秒转2000度),设置位是Bit3 ,Bit4

        

                

        总代码

/*初始化*/
void App_MPU6050_Init(void)
{
	/*I2C初始化*/
	MPU_IIC_Init();
	
	/*MPU6050初始化*/
	uint8_t date = SUCCESS; //SUCCESS from stm32f10x.h
	do
	{
		/*设备复位*/
		date = IIC_Write_One_Byte(MPU6050_ADDRESS, PWR_MGMT_1, 0x80);
		osDelay(100);
		
		/*唤醒*/
		date = IIC_Write_One_Byte(MPU6050_ADDRESS, PWR_MGMT_1, 0x00);
		
		
		/*设置传感器采样频率 为 250 Hz*/
		date += IIC_Write_One_Byte(MPU6050_ADDRESS, SMPLRT_DIV, 0x03); // 1000 Hz/(SMPLRT_DIV+1)=250Hz  SMPLRT_DIV=0x03
		
		/*将加速度计的量程  设置为 4g*/
		date += IIC_Write_One_Byte(MPU6050_ADDRESS, ACCEL_CONFIG, 0x08);//+-4g  但是参考代码是0x09
		
		/*设置陀螺仪的量程 +-2000°/s*/
		date += IIC_Write_One_Byte(MPU6050_ADDRESS, GYRO_CONFIG, 0x18);//+-2000°/s
	
	}while(date != SUCCESS);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值