小笨蛋 发表于 2012-11-7 18:00:52

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

能够使用I2C的多字节连读能读取MPU6050吗?为了节约时间。

xaper 发表于 2012-11-7 18:42:39

支持哦,datasheet里面有的

__@ 发表于 2012-11-7 18:50:51

支持,我就是直接用DMA连续读的

xaper 发表于 2012-11-7 18:59:41

__@ 发表于 2012-11-7 18:50 static/image/common/back.gif
支持,我就是直接用DMA连续读的

您用的是什么主控芯片呐

小笨蛋 发表于 2012-11-7 19:37:45

xaper 发表于 2012-11-7 18:42 static/image/common/back.gif
支持哦,datasheet里面有的

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

xaper 发表于 2012-11-7 19:45:04


37page

小笨蛋 发表于 2012-11-7 19:48:05

xaper 发表于 2012-11-7 19:45 static/image/common/back.gif
37page

谢谢谢谢!

__@ 发表于 2012-11-7 19:48:19

xaper 发表于 2012-11-7 18:59 static/image/common/back.gif
您用的是什么主控芯片呐

STM32F103C8T6

小笨蛋 发表于 2012-11-7 19:50:42

xaper 发表于 2012-11-7 19:45 static/image/common/back.gif
37page

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

小笨蛋 发表于 2012-11-7 19:56:05

__@ 发表于 2012-11-7 19:48 static/image/common/back.gif
STM32F103C8T6

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

__@ 发表于 2012-11-7 20:07:30

小笨蛋 发表于 2012-11-7 19:56 static/image/common/back.gif
听说STM32木有I2C接口貌似。。



楼主看DATASHEET不仔细啊

小笨蛋 发表于 2012-11-7 20:19:15

__@ 发表于 2012-11-7 20:07 static/image/common/back.gif
楼主看DATASHEET不仔细啊

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

xaper 发表于 2012-11-7 20:54:31

小笨蛋 发表于 2012-11-7 19:50 static/image/common/back.gif
咦,这是I2C连读时序。找不到怎么连读寄存器,是不是连读时寄存器指针自动加? ...

是自动加的

xaper 发表于 2012-11-7 20:55:47

小笨蛋 发表于 2012-11-7 20:19 static/image/common/back.gif
我根本就没用过,我只是听人家说的,没有i2c和e2p.

要相信官方的Datasheet

xaper 发表于 2012-11-7 21:02:58

__@ 发表于 2012-11-7 19:48 static/image/common/back.gif
STM32F103C8T6

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

__@ 发表于 2012-11-9 17:38:49

xaper 发表于 2012-11-7 21:02 static/image/common/back.gif
主控芯片用DMA读I2C,配置麻烦吗

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

kmani 发表于 2012-11-11 19:39:49

__@ 发表于 2012-11-9 17:38 static/image/common/back.gif
不是很麻烦,注意把I2C中断优先级和I2C DMA优先级搞成最高

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

f43 发表于 2012-12-23 15:10:21

本帖最后由 f43 于 2012-12-23 15:11 编辑

xaper 发表于 2012-11-7 20:54 static/image/common/back.gif
是自动加的

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 = I2C_RecvByte();
    I2C_SendACK(0); ///这个函数的定义在下面
}
pagedata = I2C_RecvByte();
I2C_SendACK(1);
I2C_Stop();   

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

liuhengpeng123 发表于 2013-1-9 00:08:56

f43 发表于 2012-12-23 15:10 static/image/common/back.gif
hi,我这里单次读写IIC已经行了,但是多次却不行,麻烦给看看,谢谢指点
I2C_Start();                   ...

改为index<13试试

f43 发表于 2013-1-9 06:52:40

liuhengpeng123 发表于 2013-1-9 00:08 static/image/common/back.gif
改为index

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

liuhengpeng123 发表于 2013-1-9 08:34:12

f43 发表于 2013-1-9 06:52 static/image/common/back.gif
好像是没有用,不过,还是谢谢

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

liuhengpeng123 发表于 2013-1-9 08:38:31

ADW是不是0X3B

f43 发表于 2013-1-12 07:47:35

liuhengpeng123 发表于 2013-1-9 08:38 static/image/common/back.gif
ADW是不是0X3B

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

zzx52831 发表于 2014-10-3 22:21:28

你是用的DMA读的吗?

zzx52831 发表于 2014-10-4 21:48:51

__@ 发表于 2012-11-7 18:50
支持,我就是直接用DMA连续读的

你好,我原来mpu6050是读寄存器的值,现在我想通过fifo连续读,可以像用iic读寄存器那样读fifo吗?还是读fifo只能用DMA呢?
页: [1]
查看完整版本: MPU6050支持连续读取多个字节吗?