一、GPIO概念:
GPIO是通用 输入/输出 接口(General Purpose Output)的缩写,其功能是让嵌入式处理器能够通过软件灵活地读出或控制单个物理引擎引脚上的高、低电平,实现内核和外核系统之间的信息交换。
二、IO的八种工作模式
1.输入浮空:
浮的引空就是逻辑器件脚既不接高电平,也不接低电平。这是基于逻辑器件的内部结 构,当他输入引脚浮空时,相当于该引脚接了高电平。
2.输入上拉:
上拉就是把电压拉高,比如拉到 Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起到限流作用。弱、强只是上拉电阻的电阻值不同,没有严格的区分。
3.输入下拉:
下拉就是把电压拉低,拉到GND,与上拉原理相似。
4.模拟输入:
模拟输入就是指传统方式的模拟量输入。数字输入是输入数字信号,即0和1的二进制数字信号。
5.开漏输出:
输入端相当于晶体管的集电极。要得到高电平状态要拉高电压才行。适合于做电流型的驱动,其吸收电流的能力相对较强(一般20mA以内)。
6.推挽输出:
可以输出高低电平,连接数字器件;推挽结构一般是指两个晶体管分别受两个互补信号的控制,总是在一个晶体管导通的时候,另一个晶体管截止。
7.复用推挽:
可以理解为GPIO被用作第二功能时的配置情况(并非作为通用I/O接口使用)。STM32 GPIO的推挽复用模式,是在复用功能模式中输出使能,输出速度可配置。这种复用模式可工作在开漏以及推挽模式,但是输出信号是源于其他外设的,这时的输出数据寄存器是无效的;而且输入可用,通过输入数据寄存器可获取I/O接口的实际状态,但在一般直接用外设的寄存器来获取该数据信号。
8.复用开漏:
复用功能可以理解为GPIO被用作第二功能时的配置情况。每个I/O接口可以自由编程,而I/O接口寄存器按32位字访问(不允许半字或字节访问)。置位/复位寄存器和复位寄存器允许对任何GPIO寄存器的读/更改的独立访问,这样,在读和更改访问之间产生中断时不会发生危险。