一、简介
GPIO的配置种类有8种之多:模拟输入、浮空输入、下拉输入、上拉输入、 开漏输出、推挽输出、 复用开漏输出、 复用推挽输出。
二、输出
1.推挽和开漏
推挽输出:可以输出高,低电平,连接数字器件。
开漏输出: 能够输出低电平,但是要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。
2.上拉和下拉
在推挽输出模式下,理论上来讲,无论是“上拉”、“下拉”还是“无上拉下拉”,都可以输出高电平和低电平,但是,无上拉下拉时引脚悬空,在输出低电平时可能会出现不正常现象,所以建议上拉或者下拉。
在开漏输出模式下,“无上拉下拉”无法输出高电平,只有“上拉”后才能输出高电平。
三、输入
1.浮空输入
浮空输入状态下,IO的电平状态是不确定的,由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
2.上拉和下拉
上拉就是将不确定的信号通过一个电阻提升为高电平,下拉同理。
3.特殊:开漏输出时,可以读取高阻态gpio的电平,此时读取到的电平取决于外部电平。而推挽输出就不能,读取到的电平是电平控制寄存器的数据
四、复用
GPIO口被用作第二功能时的配置情况,比如pwm输出,pwm输入,ad输出,iis输出,硬件spi,硬件iic,外部时钟输出,外部时钟输入等都会启动复用模式