初始化mpu6050

上传人:小** 文档编号:61759153 上传时间:2018-12-12 格式:DOCX 页数:3 大小:13.69KB
返回 下载 相关 举报
初始化mpu6050_第1页
第1页 / 共3页
初始化mpu6050_第2页
第2页 / 共3页
初始化mpu6050_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《初始化mpu6050》由会员分享,可在线阅读,更多相关《初始化mpu6050(3页珍藏版)》请在金锄头文库上搜索。

1、/初始化MPU6050,根据需要请参考pdf进行修改u8 Init_MPU6050(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOB, &

2、GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.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,解除休

3、眠状态,时钟为内部8MHz Single_Write(MPU6050_Addr,SMPLRT_DIV, 0x07);/采样速率125Hz Single_Write(MPU6050_Addr,CONFIG,0x06); /不使能FSYNC,不使用外同步采样速率;DLPF_CFG20,设置任意轴是否通过DLPF, /典型值:0x06(5Hz)低通滤波器带宽5Hz, /对加速度和陀螺仪都有效,输出频率为1kHz,决定SMPLRT_DIV的频率基准 Single_Write(MPU6050_Addr,GYRO_CONFIG, 0x08);/不自测,量程设置500/s /*?GYRO 量程单位系数 +-

4、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; retur

5、n 1;/*读取MPU6050数据*/*/读取mpu6050内部数据,两个字节,合成数据/*s16 GetData(u8 REG_Address) /返回值为有符号的整形,16位 s16 H=0,L=0; H = Single_Read(MPU6050_Addr,REG_Address); /先读高字节,再读低字节 L = Single_Read(MPU6050_Addr,REG_Address+1); return (H0) Angle_accel = atan2(float)Accel_x,(float)Accel_z)*(180/3.14159265);/反正切计算rad/* atan2

6、(y,x)是表示X-Y平面上所对应的(x,y)坐标的角度, 它的值域范围是(-Pi,Pi) 用数学表示就是:atan2(y,x)=arg(y/x)-Pi 当y0时,其值为正. atan2*180/Pi可以计算出角度值 */ else Angle_accel = atan2(float)Accel_z,(float)Accel_x)*(180/3.14159265)-90;/反正切计算 Angle_accel = -Angle_accel; /angle_accel物理量单位是角度 deg! return Angle_accel;/陀螺仪计算Y轴的角速度s32 Read_Gry(void) s3

7、2 read_gyro_y; s32 Angle_gyro; /-角速度解算-/角速度量程见配置 本处使用1000 deg/s。scal系数为32.8 LSB/*?GYRO 量程单位系数 +-250 deg/s 131 LSB/deg/s offset 44.38188277*2 +-500 deg/s 65.5 LSB/deg/s offset 44.38188277 +-1000 deg/s 32.8 LSB/deg/s ok offset 44.38188277/2 +-2000 deg/s 16.4 LSB/deg/s offset 44.38188277/4*/ read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset; /静止时角速度Y轴输出 /Gyro_y_offset计算方法gyro静止时候N多个数据的算术均值 Angle_gyro= -read_gyro_y/65.5; /去除零点偏移,计算角速度值,负号为方向处理 /Angle_gyro测量值的单位是 deg/s.测量的物理量是角速度。 return Angle_gyro;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号