STM32GPIO构造图
1:上拉输写模式:
若是嵌入式芯片的IO引脚配置程上拉模式,那么芯片上电以后,该IO引脚在芯片内部会通过一个电阻被上拉至一个高电平(该电平一般就是芯片的工作电压,但是有些嵌入式芯片的IO电平会有专门的电源),在外界没有输写的情况下,从程序中读到的该引脚数据则为1,高电平。
2:下拉输写模式:
和上拉模式相对应,若是将IO引脚配置成下拉模式,芯片上电以后,该IO引脚也会通过电阻被下拉至地,在外界没有输写的情况下,从程序中读到的该引脚数据为0,低电平。、
高低拉模式是嵌入式中最为常见的两种模式,一般在电路初始化的时候我们不仅要设置引脚的高低拉模式,有时候还会再引脚外部自己加入上拉或者下拉电阻,以保证系统在上电过程中芯片引脚处于一个稳定的状态。
3:浮空输写模式:
浮空输写下的IO引脚既不接上拉电阻,也不接下拉电阻,此时IO引脚呈现的是一种高阻状态,经芯片内部的触发器输写,这种情况下其引脚电压是个不确定的值,由外部输写决定。这种高阻状态下,非常只用于I2C以及USART的接管端。
4:模拟输写模式:
这种模式一般用于ADC模式,由于该种模式下不经过触发器,也不接上拉和下拉电阻,因此也很适用于低功耗的场合。
5:推挽输出模式:
所谓的推挽输出模式,则是依据其工作方式来命名的。在输出模式下,电路会经过一个由P-MOS管和N-MOS管组成的单元电路(如图中下半局部)。在输出高电平时,P-MOS管导通;低电平的时候,N-MOS管导通。两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载才能和开关速度都比普通的方式很大的提高。
6:开漏输出模式:
这种模式下,假设我们输出为0,低电平,则使N-MOS管导通
接地,若控制输出为1(没法直接输出高电平),则既不输出高电平,也不输出低电平,为高阻态。也就是说,开漏模式下的IO引脚电平其实是由外部电路决定的,在正常运用时必需外部接入一个上拉电阻,此时输出的高电平,其实是外部上拉电阻所接电源电压。若是多个开漏输出的IO引脚连接到一起,必需满足所有的IO引脚都输出高阻态,才能由上拉电阻提供高电平,有一个引脚为低电平,那线路就相当于短路接地(线与功能)。我们在设计电路时若是看到芯片手册中有开漏输出的情况,一定要记得加上拉。
7:复用推挽输出模式:
复用推挽输出是相对于普通推挽输出而言的,由于嵌入式芯片的IO引脚有很多功能,有最常见的GPIO,也有复用功能,假如USART中的串口输出引脚,则需配置成这种模式,由于其高低电平都能够输出,带载才能强。
8:复用开漏输出:
同样,复用开漏输出是对应于普通开漏输出而言的,在运用该功能时必需所有的引脚接入上拉电阻,上拉电阻决定功耗和速度。一般用于IC、SMBUS这些须要线与功能的复用场合。