1

目前我正在寻找一种通过 Android 中的 SPI 进行通信的解决方案。我在我的系统上安装了 NDK,并使用本机类与我的 Wandboard 上的 GPIO(/sys/class/gpio/gpioxx/value)进行通信。它工作正常。所以在Android中使用NDK或C代码的原则对我来说很清楚。不幸的是,我找不到任何 SPI 设备 /dev/...。我只找到 I²C 设备。有人可以告诉我,如果android基本上提供SPI?如果可能的话,我在哪里可以找到该设备?我可以像使用 Linux 一样进行通信吗?

谢谢

4

1 回答 1

0

这是一个非常古老的问题的答案,但对其他人来说仍然很有价值

通常默认情况下/dev/spidev0.0未启用。它必须在构建时在内核中启用,在运行时在设备树中启用。

第一步是通过添加更改 linux 内核构建配置以启用 spidev

CONFIG_SPI_SPIDEV=y

并在设备树(其中一个 dts 文件)中添加一个spidev叶子到您希望映射连接到的 spi 设备。

这是高速连接器上的hikey960和spi3的一个例子,其他板子会略有不同

&spi3 {
    /* On High speed expansion */
    label = "HS-SPI1";
    status = "okay";
    spi-cpol=<0>;
    spidev@1 {
       spi-max-frequency = <5000000>;
        compatible = "rohm,dh2228fv";
        pl022,com-mode = <2>;
    }
};

您将能够通过/dev/spidev0.0简单的方式读取和写入设备cat > /dev/spidev0.0cat </dev/spidev0.0ioctl必须用于更复杂的选项,例如重新配置速度、更改极性和全双工写入/读取。

于 2019-09-27T15:04:05.017 回答