STM32 GPIO_2 8种工作方式

在上一篇博客中有说过GPIO的工作模式是需要自己根据项目硬件需求配置的,分别是4种输出,4种输入
这8种工作模式的定义都可以在库里面找到定义

四种输入:
GPIO_Mode_IPU(上拉输入)
GPIO_Mode_IPD(下拉输入)
简述原理:
经过上拉开关和下拉开关的连接,再经过触发器转化为0,1的数字信号,存储到数据寄存器中,然后我们就可以通过配置寄存器CRL,CRH控制这两个开关。
简述用法:
若GPIO引脚配置为上拉输入模式,在默认状态下(GPIO引脚无输入),取得的GPIO引脚数据为1,既高电平.
而下拉输入模式则是相反的,在默认状态下其引脚数据为0,低电平.

GPIO_Mode_IN_FLOATING(浮空输入)
简述原理:
不接上拉和下拉开关,直接经由触发器输入.
简述用法:
若配置成这个模式可以用电表测量其引脚电压是1点几伏(不确定的值).由于输入阻抗较大,一般把这种模式用于标准的通讯协议例如:I2C,USART的接收端.

GPIO_Mode_AIN(模拟输入) (其实这个比较好懂,就是要用到电压采集的时候一般都是这个模式)
简述原理:
直接关闭触发器,不接上拉和下拉开关,由另一路开关传至片上外设模块.
简述用法:
例如传送至ADC模块时,就由ADC采集电压信号.(使用ADC外设的时候,必须是设置为模拟输入模式).

四种输出:
GPIO_Mode_Out_PP(普通推挽输出)
简述原理:
经过一个由P_MOS和N_MOS管组成的单元电路.输出高电平(3.3V)时,P_MOS导通,低电平(0V)时,N_MOS导通(两个管子轮流导通,一个进电流,一个拉电流.这样它的负载能力和开关速度都比普通方式有大的提高)
简述用法:
一般都是应用在输出电平为0和3.3V的场合.

GPIO_Mode_Out_OD(普通开漏输出)
简述原理:
在输出0时,既高电平,则N_MOS管导通,使输出接地.在输出1时,则不输出高电平也不输出低电平(无法输出高电平,本身为高阻态).所以在使用的时候,必须在外部接上一个上拉电阻并且开漏输出模式具有”线与”的特性,既有很多开漏模式的引脚接到一起时,只有在所有引脚都处于高阻态的时候,才会输出高电平.(电压是外部上拉电阻所接电源的电压).只要其中一个引脚是低电平,那么整个线路都等于短路接地(低电平),电压是0V.(只要是开漏输出模式,都必须接上拉电阻)
简述用法:
一般应用在电平不匹配的场合,如需要输出5V的高电平,就需要在外部接上一个上拉电阻,电源为5V.这时在输出高组态的时候,就会由上拉电阻和电源向外输出5V.

GPIO_Mode_AF_PP(复用推挽输出)
GPIO_Mode_AF_OD(复用开漏输出)
简述原理:
同上.
简述用法:
对于复用模式,一般都是由GPIO的复用功能来选择的(比如一个IO引脚可以做一般输入输出,同时还是串口输出脚,这就是复用)
例如:GPIO的引脚用作串口的输出,就可以使用复用推挽输出模式了.如果是用在I2C,SMBUS这些需要线与功能的,就使用复用开漏输出

附上工作模式原理图,想具体了解的朋友可以看着原理图对照我上面所说的,一步步看,最右边的为IO引脚

PS:附上工作模式原理图,想具体了解的朋友可以看着原理图对照我上面所说的,一步步看,最右边的为IO引脚

你可能感兴趣的:(STM32 GPIO_2 8种工作方式)