2015-02-24 68 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