mpu6050学习
一、MPU6050初始化
- /**************************实现函数********************************************
- *函数原型: void MPU6050_initialize(void)
- *功 能: 初始化 MPU6050 以进入可用状态。
- *******************************************************************************/
- void MPU6050_initialize(void)
- {
- IICwriteByte(devAddr, MPU6050_RA_PWR_MGMT_1, 0x80); //PWR_MGMT_1 -- DEVICE_RESET 1
- delay_ms(50);
- IICwriteByte(devAddr, MPU6050_RA_SMPLRT_DIV, 0x00); //SMPLRT_DIV -- SMPLRT_DIV = 0 Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV)
- IICwriteByte(devAddr, MPU6050_RA_PWR_MGMT_1, 0x03); //PWR_MGMT_1 -- SLEEP 0; CYCLE 0; TEMP_DIS 0; CLKSEL 3 (PLL with Z Gyro reference)
- IICwriteByte(devAddr, MPU6050_RA_INT_PIN_CFG, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0); // INT_PIN_CFG -- INT_LEVEL_HIGH, INT_OPEN_DIS, LATCH_INT_DIS, INT_RD_CLEAR_DIS, FSYNC_INT_LEVEL_HIGH, FSYNC_INT_DIS, I2C_BYPASS_EN, CLOCK_DIS
- IICwriteByte(devAddr, MPU6050_RA_CONFIG, MPU6050_DLPF_BW_42); //CONFIG -- EXT_SYNC_SET 0 (disable input pin for data sync) ; default DLPF_CFG = 0 => ACC bandwidth = 260Hz GYRO bandwidth = 256Hz)
- MPU6050_setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
- // Accel scale 8g (4096 LSB/g)
- IICwriteByte(devAddr, MPU6050_RA_ACCEL_CONFIG, 2 << 3);
- }
初始化过程
1. 对寄存器register 107 power management 1的bit7置1复位
2. 对寄存器register 25 Sample Rate Divider,设置SMPLRT_DIV为0。(最大)
3. 对寄存器register 107 power management 1 以z轴重力计为参考系。
4. 对寄存器register 55 INT PIN/BYPASS ENABLE CONFIGURATION设置为00000010:INT脚逻辑电平为高电平,推挽输出,产生50us脉冲,读取INT_STATUS后中断清除,关闭FSYNC中断,I2C_BYPASSS_EN为1和I2C_MST_EN为0时,MCU可以直接访问I2C总线。
5. 对寄存器register 27 陀螺仪设置量程为±2000°/s
6. 对寄存器register 28 加速度计量程为±8g
2017年6月4日:为了移植DMP官方的5.1库,花了好多时间。这里对IIC的Slave地址进行总结。
网上有各种各样的地址版本,如0x68,0xD0等等。明明地址不一样,为什么他们都能用呢。

就是这里:第一个地址是b1101000,而第二个地址是b1101001。注意这是7位的二进制数,我们一般用第一个,也就是b1101000
相关的IIC信息:

所以地址需要在后面添加一位读写位,所以正确的地址应该是b1101 0000和b1101 0001。
而网上的0xD0就是b1101 0000,但是0x68却是b01101000。
所以0x68其实是7位的地址,这也就是为什么有的IIC在发送地址的时候是左移1位的。
而使用D0的地址时却是直接使用的。这就是区别。。。。。。。艹
mpu6050学习的更多相关文章
- 基于I2C总线的MPU6050学习笔记
		MPU6050学习笔记 1. 简述 一直想自己做个四轴飞行器,却无从下手,终于狠下决心,拿出尘封已久的MPU6050模块,开始摸索着数据手册分析,一步一步地实现了MPU6050模块的功能,从MPU60 ... 
- MPU6050学习笔记(电源管理器1、2)
		Technorati Tags: 嵌入式开发.模块开发 寄存器107号:电源管理器1 PWR_MGMT_1: Description: This register allows the user to ... 
- 【mpu6050】学习笔记——基础知识点记录
		如图: 假设为三维空间有一个向量R 满足关系: 即为加速度计的x轴,y轴,z轴. 对于MPU6050 其求出的数值为: 分母为灵敏度, ADCRx为读出值. 我关心的是Axr,Ayr,Azr即 ... 
- 对MPU6050坐标矩阵修改的学习
		MPU6050是根据三轴陀螺仪和三轴加速度计数据通过DMP运算的出欧拉角.系统默认为水平放置, 但是实际使用过程中并不都是水平放置,有些特殊的场合,要求芯片竖直放置,这时候就不得 不修改MPU6050 ... 
- 重力加速度陀螺仪传感器MPU-6050(一)
		MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其测量的模拟量转化 为可输出的数字量.为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±50 ... 
- 第44章 	MPU6050传感器—姿态检测—零死角玩转STM32-F429系列
		第44章 MPU6050传感器—姿态检测 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ... 
- 学习笔记-CCS-MSP430F5529[快速入门篇二]
		由于2021的全国电赛延期了,从今天开始打算好好整理一下使用CCS编程的经验,本篇笔记会好好整理一下我备赛期间用CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输入捕获,PWM波输出,UAR ... 
- stm32知识学习的先后顺序
		这里大概的罗列了一些学习STM32的内容,以及学习顺序.如果是新手的话,建议边看中文手册和学习视频;如果是已经入门的,个人建议自己做一个项目,不论项目大小,当然里面会涉及到自己已经学习过的,或者是自己 ... 
- 单片机入门stm32知识学习的先后顺序
		这里大概的罗列了一些学习STM32的内容,以及学习顺序.如果是新手的话,建议边看中文手册和学习视频;如果是已经入门的,个人建议自己做一个项目,不论项目大小,当然里面会涉及到自己已经学习过的,或者是自己 ... 
随机推荐
- Git 中的一些其他常用命令
			1.查看提交的历史版本(git log) 我们可以使用 git log 命令来查看提交的历史版本. 默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面.每个版本都有 ... 
- JS谷歌浏览器断点调试
			1.找到对应的文件 按F12打开网页调试工具,默认打开的是Elements,显示的是网页标签元素.选择Source,在左侧找到对应的js代码文件(这里是在page标签上找到的) 1.1.如何找到web ... 
- h5视频做背景的样式
			video{ position: fixed; display: block; width: 100%; object-fit:fill; height:100%; right: 0px; botto ... 
- [CSP-S模拟测试]:春思(数学)
			蝶恋花·春景花褪残红青杏小.燕子飞时,绿水人家绕.枝上柳绵吹又少.天涯何处无芳草!墙里秋千墙外道.墙外行人,墙里佳人笑.笑渐不闻声渐悄.多情却被无情恼.(本词是伤春之作,写春景清新秀丽.同时,景中又有 ... 
- 后端技术杂谈3:Lucene基础原理与实践
			本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ... 
- python中的生成器和迭代器
			前言: 我们来了解一下什么是python中生成器.了解一下python生成器是什么,以及生成器在python编程之中能起到什么样的作用. 定义: 生成器和迭代器 通过列表生成式,我们可以直接创建一个列 ... 
- 请教怎么查询ORACLE的历史操作记录!
			请问如何查询ORACLE的历史操作记录!!!!!我用的是linux oracle 11g r2,想查一下前几天的数据库的历史操作记录,例如对表的insert,delete,update等等的操作记录, ... 
- Linux(Ubuntu)常用命令(四)
			权限修改: 先知: u user 表示该文件的所有者 g group 表示与该文件的所有者属于同一组( group )者,即用户组 o other 表示其他以外的人 a all 表示这三者皆是 r r ... 
- Java程序的设计环境配置
			一.下载主要的开发工具 JDK的下载 www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Ecli ... 
- mysql控制台的一些技巧,显示,输入换行,语法正则等
			注释: 以/**注释内容**/ mysql> /**列出所有的数据库**/ show databases; +--------------------+ | Database | +------ ... 
