一、保护二极管:防止引脚外部输入电压太高or太低blog
二、 P-MOS 和 N-MOS 管:配置
推挽输出:输入高电平时,经反向,上方的 P-MOS 导通,下方的 N-MOS 关闭,对外输出高电平;而输入低电平时,反向,N-MOS管导通,P-MOS关闭,对外输出低电平im
应用场合: 输出电平为0和 3.3V,须要高速切换开关状态(自动切换状态,不须要外接上下拉电阻)数据
开漏输出:P-MOS 管彻底不工做。若是控制输出为 0,低电平,则 P-MOS 管关闭,N-MOS 管导通,使输出接地;若控制输出为 1 (它没法直接输出高电平),则 P-MOS 管和 N-MOS 管都关闭,因此引脚既不输出高电平,也不输出低电平,为高阻态。img
应用场合:( 外接上拉电阻),此时,高电平的电压为外部上拉电阻所接的电源的电压。除了必须状况,通常用推挽输出。co
三、复用功能输出:采集
从其它外设引出来的 “复用功能输出信号” 与 GPIO 自己的数据据寄存器 都链接到双 MOS 管结构的输入中,经过梯形结构做为开关切换选择。工作
四、 输入数据寄存器、模拟输入数字
图中上半部分,GPIO引脚通过内部的上、下拉电阻,能够配置成上/下拉输入,而后再链接到施密特触发器,信号通过触发器后,模拟信号转化为 0、1 的数字信号,而后存储在“输入数据寄存器 GPIOx_IDR”中,经过读取该寄存器就能够了解 GPIO引脚的电平状态。ps
五、复用功能输入
GPIO 引脚的信号传输到STM32其它片上外设,由该外设读取引脚状态。例如:USART接收数据:利用某个GPIO,配置成USART串口复用功能。
六、模拟输入输出
当 GPIO 引脚用于 ADC 采集电压的输入通道--模拟输入
当 GPIO 引脚用于 ADC 采集电压的输出通道--模拟输出