单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > ST单片机GPIO的8种工作模式

ST单片机GPIO的8种工作模式

大家好,我是小舒。没错,今天和大家分享的是ST单片机GPIO的八种工作模式,这是一个老生常谈的问题,我在一开始写微信文章的时候就分享过,点击????。每年都有电子新人加入,所以今天再以另一种方式和大家分享一下。

GPIO_Mode_IN_FLOATING :浮空输入

外部通过IO口输入电平,传输到施密特触发器(此时施密特触发器为打开状态),直接进入输入数据寄存器,CPU通过读输入数据寄存器实现读取外部输入电平值,在输入浮空模式下可以读取外部输入电平。如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。

GPIO_Mode_IPU :上拉输入

上拉电阻的开关闭合,上拉电阻连接到VDD,在I/O端口悬空(在无信号输入)的情况下,外部输入通过上拉电阻,施密特触发器存入输入数据寄存器,被CPU读取出高电平,当I/O端口输入为低电平的时候,施密特触发器触发存入输入数据寄存器,CPU读取出低电平。

GPIO_Mode_IPD:下拉输入

下拉电阻的开关闭合,在I/O端口悬空(在无信号输入)的情况下,下拉电阻连接到VSS,外部输入通过下拉电阻,施密特触发器存入输入数据寄存器,被CPU读取出低电平,当I/O端口输入为高电平的时候,下拉电阻处的电压为高电平,施密特触发器触发存入数据寄存器,CPU读取出高电平。

GPIO_Mode_AIN:模拟输入

模拟输入通道的配置则更加简单,信号从左边编号1的端口进入,从右边编号2的一端直接模拟输入至片上外设模块。上拉、下拉电阻和施密特触发器,均处于断开状态,IO口外部电压为模拟量,电压形式为非电平形式。

GPIO_Mode_Out_OD:开漏输出

开漏输出模式下,通过设置 位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。这里要注意N-MOS管,当设置输出的值为高电平的时候,N-MOS管处于截止状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;当设置输出的值为低电平的时候,N-MOS管处于导通状态,此时I/O端口的电平就是低电平。同时,I/O端口的电平也可以通过输入电路进行读取;注意,I/O端口的电平不一定是输出的电平。

GPIO_Mode_Out_PP 推挽输出

推挽电路(push-pull)就是两个不同极性晶体管间连接的输出电路。推挽电路采用两个参数相同的MOSFET管,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小效率高。当设置输出的值为为高电平时,P-MOS导通,N-MOS截止,此时I/O端口的电平就由P-MOS管决定为高电平;当设置输出的值为低电平的时候,P-MOS管处于截止状态,N-MOS管处于导通状态,此时I/O端口的电平就由N-MOS管决定为低电平,同时IO口输出的电平可以通过输入电路读取,此时I/O端口的电平一定是输出的电平。

GPIO_Mode_AF_OD:复用开漏输出

与开漏输出模式唯一区别在于输出控制电平之前电平的来源,开漏输出模式的输出电平是由CPU写入输出数据寄存器控制的,开漏复用输出模式的输出电平是由复用功能外设输出决定的。其他与开漏输出相似。控制电路输出高电平:N-MOS截止,IO口电平由外部上拉/下拉决定。控制电路输出低电平:N-MOS开启,IO口输出低电平。

GPIO_Mode_AF_PP:复用推挽输出

与推挽输出模式唯一区别在于输出控制电路之前电平的来源。开漏输出模式的输出电平是CPU写入输出数据寄存器的,推挽复用输出模式的输出电平是由复用功能外设输出决定的。


别再烧管子了,线圈两端并一个二极管吧
单片机的Bootloader,可以实现用户轻松升级程序
编程5分钟,命名2小时!探讨一下C语言变量/函数的命名规则!