簡體   English   中英

Arduino上有不同的I2C地址?

[英]Different I2C addresses on Arduino?

我為Arduino編寫了一個類,用於讀取HiTechnic LEGO Mindstorms指南針傳感器的指南針數據。

使用Wire-library,我可以很好地從相應的寄存器中獲取數據。 在我的Arduino庫中,我通過0x01解決了傳感器,有人已經在Arduino論壇上做過了。 但是網上的其他地方( LEGO Mindstorms的RobotC論壇本文檔最底部的代碼示例 )它說,該傳感器的I2C地址是0x02

那么為什么我必須使用地址0x01才能與我的傳感器通信,而其他編程語言似乎是0x02

有不同格式的I2C地址--7或8位。 Arduino使用7位格式,因此要將8位地址轉換為7位,只需將其右移一位即可。 這就是0x02 8位地址如何轉換為0x01 7位地址。

資料來源: http//arduino.cc/en/reference/wire

“注意:存在7位和8位版本的I2C地址.7位識別器件,第8位確定是否正在寫入或讀取.Wire資料庫始終使用7位地址。如果您有數據表或使用8位地址的示例代碼,您需要丟棄低位(即將值向右移一位),產生0到127之間的地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM