2015-02-24 37 views
0

我的问题很容易(我认为)。 假设我想读取寄存器,其中结果由传感器存储。简单 - >当在读取操作期间更改寄存器地址i2c

在哪个时刻我需要指定我想要读取的寄存器? 将从机地址作为数据后? http://imgur.com/EhO6d6m

我不这么认为。因为如果我以前在寄存器0x1234做了写操作。之后只需进行阅读(不指定任何内容)。我将从寄存器0x1234读取数据。

何时/何时需要指定我想要读取的新寄存器的地址?

如果有人有答案,请让它知道。 谢谢

+0

我不是指*数据表的任何*部分,因为您没有提及您使用的是什么设备。我建议你*参考通常会告诉你如何使用设备的数据表。你没有问过任何有意义的问题。 – 2015-02-24 14:36:46

+0

那么,当然我读了数据表..但我没有找到任何真正解决我遇到的问题。我想知道这个问题是如何解决的。我链接的图片来自数据表 – ohiliouh 2015-02-24 14:43:36

+0

制定我的问题的另一种方式:何时/如何知道我想要访问哪个寄存器以进行读取操作? – ohiliouh 2015-02-24 14:46:33

回答

0

通常,您必须通过写入来指定要读取的寄存器(如果它尚未设置)!

问题

STA 
SLA+W 
REGISTER 
rSTA 
SLA+R 
DATA 
STO 

这是最常用的格式。其他不常见的变体包括:

STA 
SLA+W 
READ_REGISTER_ADDRESS 
REGISTER 
rSTA 
SLA+R 
DATA 
STO 

即,一些设备只允许您操作指向下一个被读取的数据寄存器的指针。

某些设备没有多个寄存器,所以您总是从同一个寄存器读取数据。

+0

为通用格式: 而且我不必发送任何东西到这个寄存器(一个我想读)在这个写过程中?我只是发送注册地址,这足够? – ohiliouh 2015-02-24 17:23:51

+0

没错,就够了。 – FRob 2015-02-24 17:24:56

+0

我刚刚注意到了一些问题,我正在使用控制器,并且在我使用的库中没有定义重复的开始。一个正常的停止或结束,然后是正常的开始工作? – ohiliouh 2015-02-24 17:44:49