**General Purpose Input/Output (GPIO) **是单片机乃至普通计算机设备中最常用的端口了,很多高级端口和总线都是使用一个或多个GPIO端口来实现的。
它支持数字信号的输入、输出,对最基本的数字信号方波做读写,或者说对最基本的数字信号电平高低做读取和操作。
它的基本读取操作:
读取电平的高/低状态
读取电平变化,即电平上升沿(从低电平变为高电平)和电平下降沿(从高电平变为低电平)
它的基本输出操作:
输出高/低电平已指示状态
输出电平变化,即电平拉高(把当前端口的电平设置到高电平)和电平拉低(把当前端口的电平设置到低电平)
输出连续变化的电平,如果输出的电平变化有周期,则被称为PWM,否则一般用于表示连续的二进制流串
管理GPIO连接
1. 列举GPIO端口
用下面的方法可以列举出设备上可用的GPIO端口列表。在Android Things中,对外围端口的管理类是PeripheralManagerService,它可以在任何地方直接被new出来,而且可以被创建多个实例在不同地方一起使用。
PeripheralManagerService manager = new PeripheralManagerService();
List portList = manager.getGpioList();
if (portList.isEmpty()) {
Log.i(TAG, "No GPIO port available on this device.");
} else {
Log.i(TAG, "List of available ports: