八种IO口模式
STM32有八种IO口模式为:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。
1、模拟输入
GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传输到片上外设模块(不连接上下拉电阻)。
2、浮空输入
GPIO_Mode_IN_FLOATING浮动输入。IO电平状态不确定,完全由外部输入决定。如果引脚悬挂,则不确定读取端口的电平。
3&上下拉输入
GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入。一般来说,上拉电阻为1K-10K,电阻越小,驱动能力越强。
电阻:防止输入端悬挂,减少外部电流对芯片的干扰,限制流量,提高高电平输出的驱动能力。
当GPIO引脚无输入时,上拉输入默认为高电平,下拉输入默认为低电平。
5、开漏输出
GPIO_Mode_Out_OD泄漏输出,输出端相当于三极管的集电极。要获得高电平状态,需要上拉电阻。适用于电流驱动,其吸收电流的能力相对较强,一般为20mA以内。
6、推挽输出
GPIO_Mode_Out_PP推拉输出,可输出高、低电平,连接数字设备。
7&8.复用开漏推挽输出
GPIO_Mode_AF_OD复用开漏输出,GPIO_Mode_AF_PP复用推挽输出。GPIO当口被用作第二个功能时,它不是通用的IO口使用。
IO模式选用
浮动输入:可以做到KEY识别,RX1。
上拉输入:IO内部上拉电阻输入。
下拉输入:IO输入内部下拉电阻。
模拟输入:应用ADC在低功耗下模拟输入或省电。
开漏输出:IO输出0接GND,IO输出1,悬挂,需要外部上拉电阻才能实现高输出电平。当输出为1时,IO口的状态由上拉电阻拉高,但由于是泄漏输出模式,因此IO口可由外部电路改为低电平或不变。IO实现输入电平的变化C51的IO双向功能。
推挽输出:IO输出0-接GND,IO输出1 -接VCC,读输入值未知。
复用推挽输出:片内外设功能,I2C的SCL、SDA。
复用开漏输出:片内外设功能,TX1,MOSI,MISO.SCK.SS。
引脚配置方法
使用引脚功能通常有五种方式,其配置如下:
1、作为普通GPIO输入:根据需要配置引脚为浮空输入、弱上拉输入或弱下拉输入,不要使引脚对应的所有复用功能模块。
2、作为普通GPIO输出:引脚按需配置为推拉输出或泄漏输出,同时不要使引脚对应的所有复用功能模块。
3.作为一种普通的模拟输入:将引脚配置为模拟输入模式,同时不要使引脚对应的所有重用功能模块。
4.作为内置外设的输入:根据需要,引脚为浮空输入、弱上拉输入或弱下拉输入,同时使引脚对应的复用功能模块。
5.作为内置外设的输出:引脚根据需要配置为复用推挽输出或复用开漏输出,同时使引脚对应的所有复用功能模块。