写在前面的话:由于外设I/O涉及到GPIO、PWM、和串行通信三部分,而串行通信有讲了I2C(IIC)、SPI、UART,这样导致本文的篇幅过长不便于阅读,特此将本文分成几部分来方便阅读
Android Things提供了外设I/O API,使用行业标准协议和接口与传感器和执行器进行通信。
通用输入/输出(GPIO)
将此API用于简单传感器,例如运动探测器、接近探测器和电平开关,它们将当前状态报告为二进制值高或低。
通用输入/输出(GPIO)引脚提供了一个可编程接口,用于读取二进制输入设备(例如按钮开关)的状态或控制二进制输出设备(例如LED)的开/关状态。
您可以将GPIO引脚配置为具有高或低状态的输入或输出。 作为输入时,当外部源状态确定,您的应用程序就可以读取当前值,或者对状态更改做出相应反应。 作为输出时,您的应用程序可以配置引脚的状态。
注意:为避免损坏GPIO引脚,请在连线之前检查硬件的输入和输出限制。 请参阅硬件基础并查阅硬件的文档。
管理连接
为了打开到GPIO端口的连接,您需要知道唯一的端口名称。 在开发的初始阶段或将应用程序移植到新硬件时,通过getGpioList()从PeripheralManagerService找到所有可用的端口名称很有帮助:
PeripheralManagerService manager = new PeripheralManagerService();
List portList = manager.getGpioList();
if (portList.isEmpty()) {
Log.i(TAG, "No GPIO port available on thi