如何在Toit中使用I2C总线上的16位寄存器地址?

问题描述 投票:0回答:1

当使用Toit的寄存器用于I2C设备时,寄存器地址只有8位。

我有一个使用 16 位地址的设备。我如何与它沟通?

i2c toit
1个回答
0
投票

使用 16 位地址时,必须直接使用 I2C device。该类具有 write-addressread-address 函数,它们将地址作为字节数组。

然后您可以使用如下辅助函数:

read-register16 address/int size/int -> ByteArray:
  return device.read-address #[address >> 8, address & 0xff] size

write-register16 address/int bytes/ByteArray:
  device.write-address #[address >> 8, address & 0xff] bytes
© www.soinside.com 2019 - 2024. All rights reserved.