江科大笔记-STM32入门教程-STM32-GPIO电路结构

GPIO基本介绍:

  • GPIO是挂载在APB2外设总线上的,每个寄存器的每一位对应一个引脚。
  • STM32是32位单片机,所有其内部寄存器也是32位,但任意GPIO端口,比如GPIOA端口,只有0~15这16个引脚,而每个寄存器的每一位对应一个引脚,所以GPIO口的寄存器只有低16位对应着引脚,高16位是没有用到的。

GPIO电路结构

输入部分(GPIO口可读取端口上的外设的高低电平然后输入到CPU(软件))

  1. 两个保护二极管:对输入电压(IO引脚)进行限幅,
  • 若输入电压比VDD高,则上方二极管导通,输入电压产生的电流将流入VDD而不会流入内部电路;
  • 若输入电压比VSS低,则下方二极管导通,电流将从VSS流出,而不会从内部电路汲取电流;
  • 若输入电压在VSS~VDD之间,则两个二极管均截止,此时二极管对电路无影响。
  1. 上拉电阻、下拉电阻:为输入默认提供一个电平(这里的电阻比较大,为弱上拉和弱下拉)
  • 若上面导通,下面断开,则为上拉输入模式,则默认输入高电平;
  • 若下面导通,上面断开,则为下拉输入模式,则默认输入低电平;
  • 若均断开,则为浮空输入模式,受外界干扰而随机输入高低电平;
  1. 施密特触发器:对输入电压进行01整形处理(图中为肖特基触发器为翻译错误,应为施密特触发器)
  • 设定一阈值上限,输入电压高于阈值上限时,整形输出为高电平;
  • 设定一阈值下限,输入电压低于阈值下限时,整形输出为低电平;
  1. 将数据写入 输入数据寄存器

输出部分(可在程序中设置高低电平,然后输出给实物芯片)

  1. 输出数据:
  • 输出由输出数据寄存器、片上外设控制,两者通过数据选择器连接到输出控制部分
  • 若是输出数据寄存器控制,则为普通的IO口输出,同时控制16个引脚,只能整体读写,在此基础上,若想单独操作一位,那可以用按位与、按位或的方式;
  • 位设置/清除寄存器:直接单独操作输出数据寄存器的某一位,而不影响其他位。
  1. P-MOS、N-MOS管:

推挽模式:P-MOS和N-MOS均有效,高低电平均有强驱动能力。

  • 数据寄存器为1时,上管导通,下管断开,输出接VDD,输出高电平;
  • 数据寄存器为0时,上管断开,下管导通,输出接VSS,输出低电平;

开漏输出模式:P-MOS无效,N-MOS有效,只有低电平有驱动能力。

  • 数据寄存器为1时,下管断开,此时输出相当于断开,即高阻模式;
  • 数据寄存器为1时,下管导通,此时输出接VSS,输出低电平;
  • 可以作为通信协议的驱动方式,比如I2C通信的引脚,在多机通信情况下,该模式可以避免各个设备之间的干扰。
  • 可以用于输出5V的电平信号,比如在IO口外接一个上拉电阻到5V的电源,输出低电平时,内部N-MOS接VSS;输出高电平时,由外部的上拉电阻拉高到5V。

关闭模式:两个MOS均无效,即输出关闭,端口的电平由外部信号控制。

GPIO的八种工作模式

通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式

模式名称称

输出性质

特征功能介绍

浮空输入

数字输入

软件可读取引脚电平,若引脚悬空,则电平不确定

上拉输入

数字输入

软件可读取引脚电平,内部连接上拉电阻,悬空时外设默认设置为高电平

下拉输入

数字输入

软件可读取引脚电平,内部连接下拉电阻,悬空时外设默认设置为低电平

模拟输入

模拟输入

GPIO无效,引脚直接接入内部ADC

开漏输出

数字输出

可软件输出引脚电平,高电平为高阻态,低电平接VSS

推挽输出

数字输出

可软件输出引脚电平,高电平接VDD,低电平接VSS

复用开漏输出

数字输出

由片上外设控制,高电平为高阻态,低电平接VSS

复用推挽输出

数字输出

由片上外设控制,高电平接VDD,低电平接VSS

阅读芯片手册

  1. 一个GPIO端口里,只有低16位有对应的16个引脚,高16位没有用到。

  1. 高16位进行位清除(BR),低16位进行位设置(BS),写1则为清除或设置,写0则为无影响。

  1. 这个清除寄存器跟上面那个一样,只是是低16位起清除作用,而上面那个是高16位起清除作用。
  • 如果只想单一的进行位清除和位设置,那可以设置用上面的,清除用下面的,这样比较方便,因为都是对低16位进行操作。
  • 如果想对多个端口同时进行位设置和位清除,那用上面的,这样可以保证位设置和位清楚的同步性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值