将外围设备移植到 AndroidThings - 管脚选择

Porting peripheral to AndroidThings - pin selection

我正在尝试将一些代码移植到 AndroidThings。目前它使用“GPIO 3 (SCL)”作为 Raspberry Pi 上的引脚。 https://github.com/mattdh666/rpi-led-matrix-panel/blob/master/RgbMatrix.h#L206

但是在 AndroidThings 上,相同的引脚是“I2C1 (SCL)”,所以我无法使用 peripheralManService.openGpio("BCM3") 引用它 see here for Pinout diagram

    try {
        gpioSerialClock = service.openGpio("BCM3"); // Throws Caused by: android.os.ServiceSpecificException: Unknown I/O name BCM3
    } catch (IOException e) {
        throw new IllegalStateException(e);
    }

我是否应该移动电线以使用 Raspberry Pi 上标记为 GPIO 的另一个引脚?这有什么后果吗:/我的外围设备想使用 BCM3,因为它是串行时钟

如果需要,对所选引脚的一些更直观的解释:

您正在移植的代码假定所有连接的引脚都是纯 GPIO 引脚。它明确驱动每个引脚的所有引脚转换。在这方面,您只需要 13 个可用的 GPIO 端口即可连接到 RGB 矩阵。您只需对接线进行适当的调整,使示例中的引脚号与您选择的端口相匹配。

这不是处理来自 Android 事物的通信的最有效方式(大量往返和循环 I/O),但它应该作为一个开始。理想情况下,您可以从 SPI 或 I2C 总线(如果协议匹配)驱动时钟串行数据,以减少开销并提高传输速率。