STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。
1、模拟输入
GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。
2、浮空输入
GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
3、上下拉输入
GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入。一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强。
电阻的作用:防止输入端悬空,减少外部电流对芯片的干扰,限流,增加高电平输出时的驱动能力。
当GPIO引脚无输入时,上拉输入在默认状态下为高电平,下拉输入在默认状态下为低电平。
4、开漏输出
GPIO_Mode_Out_OD开漏输出,输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对较强,一般20mA以内。
5、推挽输出
GPIO_Mode_Out_PP推挽输出,可以输出高、低电平,连接数字器件。
6、复用开漏推挽输出
GPIO_Mode_AF_OD复用开漏输出,GPIO_Mode_AF_PP复用推挽输出。可以理解为GPIO口被用作第二功能时的配置情况,即并非作为通用IO口使用。
IO模式选用
浮空输入:可以做KEY识别,RX1。
上拉输入:IO内部上拉电阻输入。</