STM32F1系列GPIO的八种工作模式

GPIO的八种工作模式
八种工作模式概括
GPIO八种模式输入/输出简介
输入浮空输入用完全浮空,状态不定
输入上拉输入用用内部上拉,默认是高电平
输入下拉输入用用内部下拉,默认是低电平
模拟功能输入输出均可ADC、DAC
开漏输出输出用软件IIC的SDA、SCL等
推挽输出输出用驱动能力强,25mA(max),通用输出
开漏式复用功能输出用片上外设功能(硬件IIC 的SDA、SCL引脚等)
推挽式复用功能输出用片上外设功能(SPI 的SCK、MISO、MOSI引脚等)

接下来,就用通俗易懂的话来解释一下各个工作模式的特点以及工作流程


附图:GPIO结构框图
① 保护二极管 ② 内部上拉、下拉电阻 ③ 施密特触发器 P-MOS & N-MOS管

输入浮空模式
  • 特点:IO口电平完全由外部电路决定
  • 原件开关情况:上下拉电阻断开,施密特触发器打开,输出模块被禁止
  • 应用:常用于按键检测
输入上拉模式
  • 特点:空闲时,IO呈现高电平
  • 原件开关情况:上拉电阻接通,下拉电阻断开,施密特触发器打开,输出模块被禁止
  • 应用:需要**“弱上拉”**的情况,可节省一个外部电阻
输入下拉模式
  • 特点:空闲时,IO呈现低电平
  • 原件开关情况:上拉电阻断开,下拉电阻导通,施密特触发器打开,输出模块被禁止
  • 应用:可节省一个外部电阻
模拟功能
  • 特点:(1)走的路比较独特。数据输入不经过数据输入寄存器,而是直接走模拟输入通道(2)该模式下需要用到芯片内部的模拟电路单元
  • 原件开关情况:上拉电阻断开,下拉电阻断开,施密特触发器关闭,输出模块被禁止
  • 应用:用于模拟信号输入或输出场景,如:ADC和DAC
开漏输出
  • 特点:只能输出低电平Vss或者高阻态。必须有外部上拉电阻才能输出高电平(对于F1系列来说)

  • 应用:常用于 IIC 通讯或其它需要进行电平转换的场景。

  • 首先要明确三点:

    (1)在开漏输出模式下,P-MOS管永远处于截止状态(即不导通),因此 IO 的状态取决于 N-MOS 的导通状况

    (2)输出数据寄存器的输出数据都会进行一次“输出控制”的取反操作

    (3)施密特触发器仍然工作,但上下拉电阻不工作,所以输入部分可以看成浮空输入,可以读取到IO口的工作状态

  • IO的输出过程:(请对照GPIO结构框图学习)(在上面)
    可以分为向输出寄存器输出逻辑1和0两种情况:

    1. 输出数据寄存器输出逻辑0 --> “输出控制”进行取反操作 --> 逻辑1到达N-MOS的栅极 --> N-MOS输出低电平
    2. 输出数据寄存器输出逻辑1 -> “输出控制”进行取反操作 -> 逻辑0到达N-MOS的栅极 -> N-MOS被截止 -> IO呈现高阻态(既不输出高,也不输出低)
    3. 其示意图如下:
输出数据寄存器输出逻辑
输出0
输出控制进行取反操作
输出1
逻辑1到达N-MOS的栅极
逻辑0到达N-MOS的栅极
N-MOS输出低电平
N-MOS被截止
IO口输出低电平
IO呈现高阻态,既不输出高也不输出低
开漏复用功能

当GPIO处于该种工作模式时,其与开漏模式基本相同

唯一的区别就是:IO口输出的东西不再受输出数据寄存器影响,而是由其他的外设来控制输出

推挽输出
  • 特点:即可以输出低电平 VSS 也可以输出高电平VDD。且输出的最大电流能达到25mA的驱动电流,具有较强的驱动能力。

  • 首先明确两点:
    (1)推挽模式下,P-MOS 管和 N-MOS 管同时起作用

    (2)输出数据寄存器的输出数据都会进行一次“输出控制”的取反操作

  • IO的输出过程:(请对照GPIO结构框图学习)(在上面)
    仍然可以分为向输出寄存器输出逻辑1和0两种情况:

    1. 输出数据寄存器输出逻辑0 --> “输出控制”进行取反操作 --> 逻辑1到达P-MOS的栅极 --> P-MOS管被截止 --> 输出逻辑1到 N-MOS 管的栅极 --> N-MOS导通 --> IO接到VSS --> 输出低电平
    2. 输出数据寄存器输出逻辑1 --> “输出控制”进行取反操作 --> 逻辑0到达N-MOS的栅极 --> N-MOS管被截止 --> 输出逻辑0到 P-MOS 管的栅极 --> P-MOS导通 --> IO接到VDD --> 输出高电平
    输出数据寄存器输出逻辑
    输出0
    输出控制进行取反操作
    输出1
    逻辑1到达P-MOS的栅极
    P-MOS管被截止
    输出逻辑1到 N-MOS 管的栅极
    N-MOS导通
    IO接到VSS
    输出低电平
    逻辑0到达N-MOS的栅极
    N-mos管被截止
    输出逻辑0到 P-MOS 管的栅极
    P-MOS导通
    IO接到VDD
    输出高电平

综上所述,我们可知:

  • 推挽输出模式下,P-MOS 管和 N-MOS 管同一时间只能有一个管是导通的。
  • 当 IO 引脚在做高低电平切换时,两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都有较大的提高。
推挽复用功能

当GPIO处于该种工作模式时,其与推挽模式基本相同

唯一的区别就是:IO口输出的东西不再受输出数据寄存器影响,而是由其他的外设来控制输出

F4/F7/H7系列和F1系列的GPIO差异点
  1. F1在输出模式,禁止使用内部上下拉
    F4/F7/H7在输出模式,可以使用内部上下拉
  2. 不同系列IO翻转速度可能不同
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值