【干货】GPIO八种工作模式讲解,图文结合,一文带你轻松搞懂
发布网友
发布时间:2024-09-26 19:25
我来回答
共1个回答
热心网友
时间:2024-10-05 08:09
今天为大家介绍GPIO八种工作模式。
GPIO即通用输入/输出端口,以STM32为例进行说明,其他单片机功能上大同小异,掌握STM32的GPIO即可触类旁通。
GPIO引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或采集外部硬件数据的功能。
一、STM32的八种GPIO口模式
二、STM32普通GPIO内部逻辑图
1、保护二极管:IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。
当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。也叫钳位二极管。
2、P-MOS管和N-MOS管:由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。
3、TTL肖特基触发器:信号经过触发器后,模拟信号转化为0和1的数字信号。但是,当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换。(可以理解为一个比较器,大于某个值是1,小于某个值是0)
查看《STM32中文参考手册V10》中的GPIO表格时,会看到有“FT”一列,这代表着这个GPIO口时兼容3.3V和5V的;如果没有标注“FT”,就代表着不兼容5V。比如STM32F103VET6的GPIOE口那一组全部兼容5V,其他组是部分兼容5V。
备注:导通路径为*部分。
三、STM32 GPIO八种工作模式
1、模拟输入 GPIO_Mode_AIN:此模式可以检测外部输入的模拟电压,可以检测电压值,只要不高于Vcc即可。
2、浮空输入 GPIO_MODE_IN_FLOATIN:此模式最常用的是检测按键,可以接收高低电平。但容易被干扰。
3、下拉输入GPIO_Mode_IPD:此模式检测到电平默认为低,可以检测到由低到高的电平变化。
4、上拉输入GPIO_Mode_IPU:此模式检测到电平默认为高,可以检测到由高到低的电平变化。
5、开漏输出GPIO_Mode_Out_OD:开漏输出用于输出低电平,高电平靠外部上拉电阻电压决定,适用于快速切换电压的外部电路结构。
6、推挽输出GPIO_Mode_Out_PP:推挽输出用于输出高低电平,是最常用的模式。
7、复用开漏输出GPIO_Mode_AF_OD:复用IIC时选择复用开漏输出,因为开漏输出可以“线与”。
8、复用推挽输出GPIO_Mode_AF_PP:其他复用比如SPI等可以选择复用推挽输出。
四、什么是推挽结构和推挽电路?
推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。
左侧为推挽输出,可以输出高低电平。右侧为开漏输出,只能输出低电平,高电平靠外部上拉电阻决定。
图中所示为三极管,也可以叫开集输出(集电极开路输出),开漏输出是当这个管子为MOS管,漏极开路输出,叫开漏输出。
推挽输出高电平(向负载推流):
推挽输出低电平(从负载拉流):
热心网友
时间:2024-10-05 08:09
今天为大家介绍GPIO八种工作模式。
GPIO即通用输入/输出端口,以STM32为例进行说明,其他单片机功能上大同小异,掌握STM32的GPIO即可触类旁通。
GPIO引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或采集外部硬件数据的功能。
一、STM32的八种GPIO口模式
二、STM32普通GPIO内部逻辑图
1、保护二极管:IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。
当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。也叫钳位二极管。
2、P-MOS管和N-MOS管:由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。
3、TTL肖特基触发器:信号经过触发器后,模拟信号转化为0和1的数字信号。但是,当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换。(可以理解为一个比较器,大于某个值是1,小于某个值是0)
查看《STM32中文参考手册V10》中的GPIO表格时,会看到有“FT”一列,这代表着这个GPIO口时兼容3.3V和5V的;如果没有标注“FT”,就代表着不兼容5V。比如STM32F103VET6的GPIOE口那一组全部兼容5V,其他组是部分兼容5V。
备注:导通路径为*部分。
三、STM32 GPIO八种工作模式
1、模拟输入 GPIO_Mode_AIN:此模式可以检测外部输入的模拟电压,可以检测电压值,只要不高于Vcc即可。
2、浮空输入 GPIO_MODE_IN_FLOATIN:此模式最常用的是检测按键,可以接收高低电平。但容易被干扰。
3、下拉输入GPIO_Mode_IPD:此模式检测到电平默认为低,可以检测到由低到高的电平变化。
4、上拉输入GPIO_Mode_IPU:此模式检测到电平默认为高,可以检测到由高到低的电平变化。
5、开漏输出GPIO_Mode_Out_OD:开漏输出用于输出低电平,高电平靠外部上拉电阻电压决定,适用于快速切换电压的外部电路结构。
6、推挽输出GPIO_Mode_Out_PP:推挽输出用于输出高低电平,是最常用的模式。
7、复用开漏输出GPIO_Mode_AF_OD:复用IIC时选择复用开漏输出,因为开漏输出可以“线与”。
8、复用推挽输出GPIO_Mode_AF_PP:其他复用比如SPI等可以选择复用推挽输出。
四、什么是推挽结构和推挽电路?
推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。
左侧为推挽输出,可以输出高低电平。右侧为开漏输出,只能输出低电平,高电平靠外部上拉电阻决定。
图中所示为三极管,也可以叫开集输出(集电极开路输出),开漏输出是当这个管子为MOS管,漏极开路输出,叫开漏输出。
推挽输出高电平(向负载推流):
推挽输出低电平(从负载拉流):