这是我关于 stackoverflow 的第一个问题,尽管我一直在阅读这个解决问题的资源。
无论如何,这是我面临的问题:
我正在尝试通过总线 SPI 连接两个评估板:
- 第一个(数据源)模拟触摸屏,是一个 Linux 发行版(目前:Raspbian)。
- 第二个是嵌入式 Android。
我想通过 SPI 连接这两个,并将触摸序列从 Linux 发送到 Android(根据多点触摸协议(protocol)(https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt))。 spidev 已启用,但我不知道如何“执行”我将收到的触摸。
据我所知:我不能使用 Android 输入设备 (https://source.android.com/devices/input/input-device-configuration-files.html),因为它不能依赖 SPI 通信。 那么我必须在 linux 内核中创建一个驱动程序吗?在这种特定情况下,“最佳做法”是什么?
提前致谢,您可能会挽救我的实习机会:)
最佳答案
如果您的 Android Linux 内核设置为公开/dev/spidev(或者您可以在内核中进行设置),则您不必创建 Linux 内核模块。您可以通过在 c/c++ 中编写 NDK 包装器来从 Android 访问/dev/spidev。 我已经做到了并且有效。我建议您从编写一个小的 c 程序开始,该程序配置和打开/dev/spidev spi channel ,并发送/接收一些测试数据。成功后,将 c 程序重写为 NDK 包装器库,您可以从 Android 程序访问它。
这里假设 Android 应用是您自己编写的。如果你想让触摸事件一般适用于 Android,我认为你需要将触摸驱动程序编写为内核模块。
关于android - Android 如何解释 SPI 接收到的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774512/