-
//
初始化
MPU6050
,根据需要请参考
进行修 改
u8 Init_MPU6050(void)
{
GPIO_InitTypeDef
GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE
);
GPIO__Pin =
GPIO_Pin_10;
GPIO__Speed = GPIO_Speed_50MHz;
GPIO__Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO__Pin =
GPIO_Pin_11;
GPIO__Speed = GPIO_Speed_50MHz;
GPIO__Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
if(Single_Read(MPU6050_Addr,WHO_AM_I)==0x68)
{
Single_Write(MPU6050_Addr,PWR_MGMT_1, 0x00);//
电源管理
1
,
解除休眠状
态,时钟为内部
8MHz
Single_Write(MPU6050_Addr,SMPLRT_DIV, 0x07);//
采样速率
125Hz
Single_Write(MPU6050_Addr,CONFIG,0x06);
//
不使能
FSYNC,不使用外同步采样速率;
DLPF_CFG[2~0],
设置任意轴
是否通过DLPF
,
/ /
典型值:
0x06(5Hz)
低通滤波器带宽
5Hz
,
//
对加速度和陀螺仪都有 效,
输出频率为
1kHz
,
决定
SMPLRT_DIV
的频
率基准
Single_Write(MPU6050_Addr,GYRO_CONFIG, 0x08);//
不自测,量程设置
500°/s
/*?GYRO
量程单位系数
+-250
deg/s
131
LSB/deg/s
初始化
hex 0x00
+-500
deg/s
65.5 LSB/deg/s
0x08
+-1000 deg/s
32.8 LSB/deg/s
0x10
+-2000 deg/s
16.4 LSB/deg/s
0x18
*/
Single_Write(MPU6050_Addr,ACCEL_CONFIG, 0x00);//
不自测,
量程设
置
2g
/*
Accle any axe
+-2
g
16384 LSB/g
+-4
g
8192
LSB/g
+-8
g
4096
LSB/g
+-16 g
2048
LSB/g
*/
return 0;
}
return 1;
}
//******
读取MPU6050
数据
******************************* *********
//**************************************
//
读取
mpu6050
内部数据,两个字节,合成数据
//**************************************
s16
GetData(u8
//
返回值为有符号的整形,
16
位
{
s16 H=0,L=0;
H = Single_Read(MPU6050_Addr,REG_Address);
字节
L = Single_Read(MPU6050_Addr,REG_Address+1);
return
//
合成数据,为有符号整形数
}
REG_Address)
//
先读高字节,再读低
(H<<8)+L;
-
-
-
-
-
-
-
-
本文更新与1970-01-01 08:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/553660.html
-
上一篇:没有了
下一篇:没有了