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的内容,以及学习顺序.如果是新手的话,建议边看中文手册和学习视频;如果是已经入门的,个人建议自己做一个项目,不论项目大小,当然里面会涉及到自己已经学习过的,或者是自己 ...
随机推荐
- PHP array_change_key_case() 函数
实例 将数组的所有的键转换为大写字母: <?php $age=array("Peter"=>"35","Ben"=>&qu ...
- [USACO10FEB] 吃巧克力Chocolate Eating (二分答案)
题目链接 Solution 先直接二分答案,然后贪心判断,一旦少于答案就吃一块. 思路很简单,有一点细节. 一天内可以不吃巧克力. 注意处理最后时没吃完的全部在最后一天吃完. Code #includ ...
- WORM Worm worm 毛毛虫爬树爬树~
对于动态规划,我也就不多说了.因为还不会, 每个题都不一样,但大致原则是一样的.抓住题意, 本题:n棵树,毛毛虫在m分钟内从p到t的路线种数,毛毛虫只可以向左右相邻位置走. 中心代码: for(i = ...
- LR之分析
1.Errors(错误统计) 每秒错误数:数值越小越好,通过这个图可以知道,当负载增加的时候,定位何时系统在负载下开始不稳定甚至出错. 2.Transaction(事务) average transa ...
- vue-cli2.X之simple项目搭建过程
1.vue init webpack-simple vuedemo02 2.按提示操作 3. 项目目录: ps:可能遇到的问题
- flask-路转换器
from flask import Flask, render_template from werkzeug.routing import BaseConverter # 配置regex路由转换器 # ...
- get the deadlock information from sql server
https://stackoverflow.com/questions/12422986/sql-query-to-get-the-deadlocks-in-sql-server-2008 You c ...
- PHP运行出现Notice
问题: Notice:Notice是PHP 的提示而非报错,PHP本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示.在网站正式开始运行时,会把提示关了的. 关闭PHP提示的方法: 搜索ph ...
- Python 进阶_OOP 面向对象编程_类和继承
目录 目录 类 最简单的类 类方法 构造器 __init__ 创建一个类 实例化一个对象 调用实例的方法和属性 创建子类 使用 super 来调用父类的构造器 实例化子类对象 调用子类的属性和方法 类 ...
- Bootstrap 学习笔记2 栅格系统 辅助类下拉框
辅助类和响应式工具: 颜色和字体相同 响应式工具: 图标菜单按钮组件: btn-group 按钮式下拉菜单