GPIO_Mode_AIN = 0x0, 模拟输入
GPIO_Mode_IN_FLOATING = 0x04, 浮空输入
GPIO_Mode_IPD = 0x28, 带下拉输入
GPIO_Mode_IPU = 0x48, 带上拉输入
GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO)
GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式
GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出
GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式
推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
要实现 线与 需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,
各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。
//--------------------------------------------------------------------------
但用作纯粹的输出时,可以选用GPIO_Mode_Out_PP,但是有些硬件上有要求用开发射极的结构就要用GPIO_Mode_Out_OD 。
如果既要用于输出,又要接收信号作输入,无需改变该pin的工作模式,只需设定为输入浮点状态GPIO_Mode_IN_FLOATING ,但是读的时候读输入寄存器(GPIOE->IDR)的值。输出值照样设定,不过输出pin脚可能要硬件上 上拉。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Henry_Wu001/archive/2009/09/04/4518238.aspx