1、分类:
2、输出详解
2.1 推挽输出、复用推挽输出 GPIO_Mode_Out_PP (Output Push-Pull)、GPIO_Mode_AF_PP (Alternate Function Push-Pull)
推挽模式下,内部供电,电路主要控制P-MOS、N-MOS通、断电流实现I/O高、低电平输出
-->应用:用于驱动外部电路,如控制LED灯、驱动其他逻辑电路等
复用推挽,外部设备连接电路,控制方法同推挽输出,区别在于由外设写入数据
-->应用:连接到外设的特殊功能引脚,如UART串口通信引脚、PWM输出等
2.2开漏输出、复用开漏输出 GPIO_Mode_Out_OD (Output Open Drain)、GPIO_Mode_AF_OD (Alternate Function Open Drain)
开漏模式下,外部电源供电,保护二极管相应改变保护电压大小,主要控制电路N-MOS管(0V)
-->应用:与外部器件连接时,如I2C总线,用于与其他设备进行通信
复用开漏,外设连接设备,控制方法同推挽输出,区别在于由外设写入数据
-->应用:连接到外设的特殊功能引脚,如I2C总线通信引脚、故障信号输出等
小结:
3、输入详解
3.1上拉输入 GPIO_Mode_IPU (Input Pull-Up)
上拉输入:I/O连接外部电路,内部上拉电阻(VDD)连接,默认电平为高电平,与开漏输出相似
-->应用:检测外部信号为低电平时,例如按键按下 ->按键按下,引起电平变化,通过I/O,传到芯片,是为输入
3.2下拉输入 GPIO_Mode_IPD (Input Pull-Down)
下拉输入:I/O连接外部电路,内部下拉电阻(VSS)连接,默认电平为低电平与开漏输出相似
-->应用:检测外部信号为高电平时,例如按键抬起
3.3浮空输入 GPIO_Mode_IN_FLOATING
浮空输入:内部电路不连接上、下拉电阻,电路处于高阻抗模式,I/O不连接外部电路,通过I/O电平来检测外部信号
-->应用:接收外部信号的状态--未知(电平状态),如按键输入、传感器输入
以上3种输入经过TTL -->过滤电压,转化为高低电平
3.4模拟输入 GPIO_Mode_AIN (Analog Input)
模拟输入:另外3种输入只检测高低电平,不知道具体数值,称为数字信号,模拟输入读取具体电压数值,不经过TTL,称为模拟信号,I/O可以接收连续变化的模拟信号
-->应用:通常与ADC(模数转换器)配合使用,测量传感器信号、音频输入等模拟信号的变化。