【发布时间】:2013-07-15 02:51:14
【问题描述】:
最初,我使用了一个支持 8 位 I2C 寄存器的 eBus SDK。此 SDK 不支持 I2C 的 16 位寄存器地址。这个 sdk 是否有任何替代方案支持 I2C 的 16 位寄存器地址?
最好的祝愿,并在此先感谢您
【问题讨论】:
-
I2C 是一种嵌入式总线,可在许多不同的芯片上找到。它甚至没有 8 位寻址(最后一位不是地址位,而是 R/W 位)。我很困惑你的问题到底是什么。
-
如果我理解正确,您想通过 I2C 读取 16 位数据吗?通常设备将只使用 2 个寄存器来存储 16 位。 IE。寄存器 0x00 将是数据的最低有效位 (LSB)。寄存器 0x01 将是数据的最高有效位 (MSB)。您可以将它们附加在一起以获得完整的 16 位寄存器。您正在与什么设备通信,我是否理解正确?
-
@MSalters:我很抱歉没有这么清楚。我有一个设备,我需要通过 I2C 总线读取它的寄存器。这些寄存器的地址由 16 位表示(例如 0x1234)。这些寄存器的值是 8 位或 16 位(存储在一或两个寄存器上)。
-
@MrHappyAsthma:你正确地理解了我。但是,该设备中的寄存器地址是用 16 位而不是 8 位表示的,而 eBus SDK 只允许寻址具有 8 位地址的寄存器。换句话说:寄存器地址 = 0x1234,寄存器值 = 0xab 或 0xabcd。
标签: i2c