GPIO完整写法是general-purpose input/output,也就是通用输入输出。工控机GPIO接口,通常我们习惯称为I/O口或总线扩展器,就是利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。

GPIO接口除了既可以在工控机数据传输中当输入口和输出口使用,还能在下面这些场景里面起到至关重要的作用:

一、GPIO做开关控制
一般用来做LED灯开关控制,通过软件代码,在需要亮灯的时候调用GPIO口拉高的函数,需要熄灯的时候调用GPIO拉低的函数,即可实现控制。

二、GPIO做输入中断信号
用GPIO做中断信号输入需要特别注意一点:如果选择这个中断口来唤醒系统,那一定要对照芯片规格书看清楚,选择的中断口能不能唤醒系统?对于大部分单片机,几乎每一个中断口都可以唤醒系统,但对于高主频的处理器,如平板电脑,并不是所有的GPIO都可以配置成中断,也不是所有的中断都能唤醒系统。

三、GPIO做按键检测
工控机GPIO接口默认状态是低电平,按键按下后被拉到高电平,此时系统能够检测到中断,判定为按键按下。等到按键释放了,GPIO接口检测到电压回归低电平,就判定为按键松开了,这种做法在单片机上比较常见的做法。

当然,工控机GPIO接口除了简单的输入输出之外,还可以做一些相对复杂的操作,例如模拟I2C总线或SPI数据线、输出PWM波形、ADC电压检测等。