半小时搞懂STM32面经知识——GPIO

1.GPIO

1.1 什么是GPIO?

通用输入输出端口,用于与外设进行数字信号通信。

1.2 GPIO有几种工作模式?请描述它们各自的特点和用途

输入输出各有四种
输入:浮空,上拉,下拉,模拟
输出:开漏,推挽,复用开漏,复用推挽

GPIO结构

在这里插入图片描述
保护二极管: IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入,当引脚电压高于VDD_FT时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁
上拉、下拉电阻: 控制引脚默认状态的电压,开启上拉的时候引脚默认电压为高电平,开启下拉的时候引脚默认电压为低电平
TTL施密特触发器: 基本原理是当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;IO口信号经过触发器后,模拟信号转化为0和1的数字信号 也就是高低电平 并且是TTL电平协议 这也是为什么STM32是TTL电平协议的原因
P-MOS管和N-MOS管: 信号由P-MOS管和N-MOS管,依据两个MOS管的工作方式,使得GPIO具有“推挽输出”和“开漏输出”的模式 P-MOS管高电平导通,低电平关闭,下方的N-MOS低电平导通,高电平关闭

GPIO输入模式

浮空输入/上拉输入/下拉输入:
在这里插入图片描述
I/O端口的电平信号直接进入输入数据寄存器。该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的;在上拉(在无信号输入)的情况下,VDD接通,默认高电平;在下拉(在无信号输入)的情况下,VSS接通,默认低电平;
注:STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。

模拟输入:
在这里插入图片描述
当GPIO引脚用于ADC采集电压的输入通道时,用作"模拟输入"功能,此时信号不经过施密特触发器,直接直接进入ADC模块,并且输入数据寄存器为空 ,CPU不能在输入数据寄存器上读到引脚状态。

GPIO输出

推挽/开漏输出:
在这里插入图片描述
推挽输出: 可以输出强高低电平,结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.

在推挽输出模式时,N-MOS管和P-MOS管都工作,如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出低电平,I/O端口的电平就是低电平,若控制输出为1 高电平,则P-MOS管导通N-MOS管关闭,使输出高电平,I/O端口的电平就是高电平,外部上拉和下拉的作用是控制在没有输出时IO口电平。

开漏输出: 可以输出强低电平,高电平得靠外部电阻拉高输出端相当于三极管的集电极.

在开漏输出模式时,只有N-MOS管工作,如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出低电平,I/O端口的电平就是低电平,若控制输出为1时,高电平,则P-MOS管和N-MOS管都关闭,输出指令就不会起到作用,此时I/O端口的电平就不会由输出的高电平决定,而是由I/O端口外部的上拉或者下拉决定。

复用推挽/开漏输出:
在这里插入图片描述

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值