搜索
bottom↓
回复: 24

MPU6050支持连续读取多个字节吗?

[复制链接]

出0入0汤圆

发表于 2012-11-7 18:00:52 | 显示全部楼层 |阅读模式
能够使用I2C的多字节连读能读取MPU6050吗?为了节约时间。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-11-7 18:42:39 | 显示全部楼层
支持哦,datasheet里面有的

出0入0汤圆

发表于 2012-11-7 18:50:51 | 显示全部楼层
支持,我就是直接用DMA连续读的

出0入0汤圆

发表于 2012-11-7 18:59:41 | 显示全部楼层
__@ 发表于 2012-11-7 18:50
支持,我就是直接用DMA连续读的

您用的是什么主控芯片呐

出0入0汤圆

 楼主| 发表于 2012-11-7 19:37:45 | 显示全部楼层
xaper 发表于 2012-11-7 18:42
支持哦,datasheet里面有的


没发现哦。。哪一页?或者给个关键词。

出0入0汤圆

发表于 2012-11-7 19:45:04 | 显示全部楼层

37page

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-11-7 19:48:05 | 显示全部楼层
xaper 发表于 2012-11-7 19:45
37page

谢谢谢谢!

出0入0汤圆

发表于 2012-11-7 19:48:19 | 显示全部楼层
xaper 发表于 2012-11-7 18:59
您用的是什么主控芯片呐

STM32F103C8T6

出0入0汤圆

 楼主| 发表于 2012-11-7 19:50:42 | 显示全部楼层
xaper 发表于 2012-11-7 19:45
37page

咦,这是I2C连读时序。找不到怎么连读寄存器,是不是连读时寄存器指针自动加?

出0入0汤圆

 楼主| 发表于 2012-11-7 19:56:05 | 显示全部楼层
__@ 发表于 2012-11-7 19:48
STM32F103C8T6

听说STM32木有I2C接口貌似。。

出0入0汤圆

发表于 2012-11-7 20:07:30 | 显示全部楼层
小笨蛋 发表于 2012-11-7 19:56
听说STM32木有I2C接口貌似。。



楼主看DATASHEET不仔细啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-11-7 20:19:15 | 显示全部楼层
__@ 发表于 2012-11-7 20:07
楼主看DATASHEET不仔细啊

我根本就没用过,我只是听人家说的,没有i2c和e2p.

出0入0汤圆

发表于 2012-11-7 20:54:31 | 显示全部楼层
小笨蛋 发表于 2012-11-7 19:50
咦,这是I2C连读时序。找不到怎么连读寄存器,是不是连读时寄存器指针自动加? ...

是自动加的

出0入0汤圆

发表于 2012-11-7 20:55:47 | 显示全部楼层
小笨蛋 发表于 2012-11-7 20:19
我根本就没用过,我只是听人家说的,没有i2c和e2p.

要相信官方的Datasheet

出0入0汤圆

发表于 2012-11-7 21:02:58 | 显示全部楼层
__@ 发表于 2012-11-7 19:48
STM32F103C8T6

主控芯片用DMA读I2C,配置麻烦吗

出0入0汤圆

发表于 2012-11-9 17:38:49 | 显示全部楼层
xaper 发表于 2012-11-7 21:02
主控芯片用DMA读I2C,配置麻烦吗

不是很麻烦,注意把I2C中断优先级和I2C DMA优先级搞成最高

出0入0汤圆

发表于 2012-11-11 19:39:49 | 显示全部楼层
__@ 发表于 2012-11-9 17:38
不是很麻烦,注意把I2C中断优先级和I2C DMA优先级搞成最高

优先级最高?
你的优先级分组用的哪一个?group_0?

出0入0汤圆

发表于 2012-12-23 15:10:21 | 显示全部楼层
本帖最后由 f43 于 2012-12-23 15:11 编辑
xaper 发表于 2012-11-7 20:54
是自动加的


hi,我这里单次读写IIC已经行了,但是多次却不行,麻烦给看看,谢谢指点
I2C_Start();                   //起始信号
  I2C_SendByte(ADW);    //发送设备地址+写信号
ACK///这个ack在单次读写时测试合格
  I2C_SendByte(RA);     //发送存储单元地址,从0开始       
ACK///这个ack在单次读写时测试合格
  I2C_Start();                   //起始信号
  I2C_SendByte(ADW+1);  //发送设备地址+读信号
ACK///这个ack在单次读写时测试合格
  for(index=0;index<14;index++)
  {
    pagedata[index] = I2C_RecvByte();
    I2C_SendACK(0); ///这个函数的定义在下面
  }  
  pagedata[index] = I2C_RecvByte();
  I2C_SendACK(1);
  I2C_Stop();     

void I2C_SendACK(char ack)
{
    SDA = ack;                  //写应答信号
    SCL = 1;                    //拉高时钟线
    Delay5us();                 //延时
    SCL = 0;                    //拉低时钟线
    Delay5us();                 //延时
}

出0入0汤圆

发表于 2013-1-9 00:08:56 | 显示全部楼层
f43 发表于 2012-12-23 15:10
hi,我这里单次读写IIC已经行了,但是多次却不行,麻烦给看看,谢谢指点
I2C_Start();                   ...

改为index<13试试

出0入0汤圆

发表于 2013-1-9 06:52:40 | 显示全部楼层
liuhengpeng123 发表于 2013-1-9 00:08
改为index

好像是没有用,不过,还是谢谢

出0入0汤圆

发表于 2013-1-9 08:34:12 | 显示全部楼层
f43 发表于 2013-1-9 06:52
好像是没有用,不过,还是谢谢

连续读14个其中每个读完应答,最后一个要非应答

出0入0汤圆

发表于 2013-1-9 08:38:31 | 显示全部楼层
ADW是不是0X3B

出0入0汤圆

发表于 2013-1-12 07:47:35 | 显示全部楼层
liuhengpeng123 发表于 2013-1-9 08:38
ADW是不是0X3B

多谢哥们,我的程序循环中是非应答的,但是循环完了之后我给了应答信号
其次我的板子AD0接地,应该是0,通过手册看是0x68,
如果写0x68的话,在IIC地址读回的函数中就会出现地址错误的现象
通过我的实验,发现,只有在这个数的 时候,回来的是0,别的都是1

出0入0汤圆

发表于 2014-10-3 22:21:28 | 显示全部楼层
你是用的DMA读的吗?

出0入0汤圆

发表于 2014-10-4 21:48:51 | 显示全部楼层
__@ 发表于 2012-11-7 18:50
支持,我就是直接用DMA连续读的

你好,我原来mpu6050是读寄存器的值,现在我想通过fifo连续读,可以像用iic读寄存器那样读fifo吗?还是读fifo只能用DMA呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 08:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表