了解GPIO对应的主要功能

GPIO

GPIO是通用输入输出端口的简称,芯片上的GPIO引脚与外部设备连接实现通讯、控制以及数据采集等功能,最基本的输出功能是通过控制引脚输出高低电平继而实现开关控制,比如引脚接入LED灯可控制LED灯的亮灭,接入继电器或三极管可控制外部大功率电路的通断。

  • 保护二极管及上、下拉电阻:引脚的两个保护二极管可防止引脚外部电压输入过高或过低导致芯片烧毁,引脚电压高于VDD时,上方二极管导通,此引脚尽管有保护,但也不可直接外接大功率驱动器件,若外接需要加大功率及隔离电路驱动。
  • P-MOS管和N-MOS管:引脚线路经过二极管后向上流向"输入模式",向下流向"输出模式",也就是经过一个由P-MOS和N-MOS管组成的单元电路,此结果使GPIO具有"推挽输出"和"开漏输出"两种模式。
  • 推挽输出即该结构中输出高电平时,经过反向后,上方的P-MOS导通,下方N-POS关闭,对外输出高电平;该结构输入低电平时,经过反向后,N-MOS导通,P-MOS关闭,对外输出低电平;当高低电平切换时,P管(灌电流)和N管(拉电流)轮流导通,使其负载能力和开关速度明显提高。注意:推挽输出低电平为0V,高电平为3.3V。一般来说此模式应用较多。
  • 开漏输出即P-MOS管完全不工作(控制输出为0,低电平时P-MOS管关闭,N-MOS管导通,输出接地),控制输出为1时,两管都关闭,引脚不输出电平,为高阻态。此时为正常使用必须外部接上拉电阻提供高电平(此时高电平电压为外部上拉电阻电源电压)。注意:开漏输出一般应用在I2C、SMBUS通讯等总线电路中,还可应用于电平不匹配的场合,如需要输出5V高电平则接一个上拉电源为5V的电阻,将GPIO设置为开漏模式
  • 输出数据寄存器:MOS管结构电路的输入信号就是由输出寄存器GPIOx_ODR提供的,我们通过修改寄存器值修改引脚的输出电平;
  • 模拟输出输出:当GPIO引脚用于ADC采集电压的输入通道时,用作"模拟输入"功能,此时信号不经过施密特触发器(信号只有0、1两种状态),ADC外设要确保采集到原始模拟信号必须在触发器前进行信号源输入;

GPIO工作模式:

  • 输入模式(模拟、浮空、上拉、下拉):通过输入数据寄存器(IDR)读取I/O状态,浮空输入一般接按键时使用,模拟输入一般用于ADC采集;
  • 输出模式(推挽、开漏):通过输出数据寄存器(ODR)控制I/O高低电平
  • 复用功能(推挽、开漏):输出使能,输出数据寄存器无效,输出可用,但一般直接用外设寄存器获取数据信号。
相关推荐
悠哉悠哉愿意6 小时前
【电赛学习笔记】MaixCAM 的OCR图片文字识别
笔记·python·嵌入式硬件·学习·视觉检测·ocr
慕容白 MU8 小时前
新唐51单片机看门狗配置流程
c语言·单片机·嵌入式硬件·51单片机
吴烦恼的博客10 小时前
FSMC的配置和应用
c语言·单片机·fsmc
jingjing~10 小时前
STM32 软件模拟 I2C 读写 MPU6050--实现加速度与陀螺仪数据采集
stm32·单片机·嵌入式硬件
ankleless13 小时前
每日学习笔记记录(分享更新版-凌乱)
学习笔记
wearegogog12313 小时前
Arduino与STM32:初学者该如何选择?
stm32·单片机·嵌入式硬件
EVERSPIN14 小时前
新升级超值型系列32位单片机MM32G0005
单片机·嵌入式硬件
qq_4017004114 小时前
stm32的can总线
stm32·单片机·嵌入式硬件
蜡笔小电芯14 小时前
【CAN总线】STM32 的 CAN 总线通信开发笔记(基于 HAL)
笔记·stm32·单片机
景彡先生16 小时前
STM32系统定时器(SysTick)详解:从原理到实战的精确延时与任务调度
stm32·单片机·嵌入式硬件