输出模式下,可由芯片向外输出电平。例如点亮LED,就需要给LED提供高电平。
GPIO_Mode_Out_OD 开漏输出
当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,该引脚处于开漏,也就是浮空状态(高阻态),如果想输出高电平则必须接入上拉电阻。同时IO口可以由外部电路改变为低电平或不变,即可读IO输入电平变化,实现了I/O端口的双向功能。简单来说,开漏输出只可以输出强低电平,高电平得靠外部电阻拉高。显然,这种输出方式就有一个优点,由于高电平完全由外部电阻控制,那此模式下的输出电平是可以通过改变电阻而改变的。
此外,可以将多路开漏输出的引脚连接到一条线上,通过一个上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,这也是I2C,SMBus,等总线判断总线占用状态的原理。
主要应用:该模式适用于电平不匹配场合、适合做电流型的驱动,吸收电流能力比较强。
GPIO_Mode_Out_PP 推挽输出
输出具有驱动能力,当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,I/O端口输出高电平。相当于可以给其他元件供电,并且可以直接通过逻辑语言0和1控制是否供电。
主要应用:点灯以及其他所有需要直接提供高低电平的操作。
GPIO_Mode_AF_OD 复用开漏输出
当有多个不同的模块对应同一个引脚时,那这个GPIO就要使用复用功能,其他方面与开漏输出相同。即如果用在IC、SMBUS这些需要线与功能的复用场合,就使用复用开漏模式。
主要应用:片内外设功能(TX1、MOSI、MISO.SCK.SS)
GPIO_Mode_AF_PP 复用推挽输出
和复用开漏输出同理,当某一个GPIO对应多个复用模块时,要用到复用功能。
主要应用:片内外设功能(I2C的SCL、SDA)
输入一般用浮空输入,如果要使引脚在悬空状态时电平确定就用上拉/下拉输入,如果要输入连续的模拟量就用模拟输入。
输出一般用推挽输出,如果要调节输出的电平就用开漏输出,如果有端口复用的情况就用复用输出模式。
全部0条评论
快来发表一下你的评论吧 !