STM32的输入输出管脚有下面8种可能的配置:(4输入、2输出、2复用输出)
1、浮空输入_IN_FLOATING
2、带上拉输入_IPU
3、带下拉输入_IPD
4、模拟输入_AIN
5、开漏输出_OUT_OD
6、推挽输出_OUT_PP
7、复用功能的推挽输出_AF_PP
8、复用功能的开漏输出_AF_OD
上拉:输入高电平,然后接一个上拉电阻(起保护作用),上拉就表示该端口在默认情况下输入为高电平;
浮空:就相当于此端口在默认情况下什么都不接,呈高阻态;
开漏输出:就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电压电压。这种方式适合在连接的外设电压比单片机电压低的时候;
推挽输出:就是单片机引脚可以直接输出高电平电压,低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上上拉电阻。但如果输出端可以会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚;
在stm32中如何配置片内外设使用的IO端口:
首先:
1、配置输入的时钟和初始化后即被激活(开启);
2、如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出可以做普通GPIO管脚使用)
3、再对外设进行详细设置。
对应到外设的输入输出功能有下面三种情况:
1、外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出;
2、外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入;
3、ADC对应的管脚:配置管脚为模拟输入;
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接,将管脚配置成输出功能后,如果外设没有被激活,那么它的输出将不确定;