【嵌入式学习-STM32F103-GPIO】

GPIO

驱动器:用来增加信号的驱动能力
寄存器:负责存储数据
在这里插入图片描述

在这里插入图片描述

寄存器-驱动器-IO引脚
在这里插入图片描述

输入部分和输出部分
在这里插入图片描述

我们可以看到输入部分。
如果输入引脚啥都不接,那到底是高电平还是低电平,实际上,这时输入就会处于一种浮空的状态,引脚的输入电平极易受外界干扰而改变。为了避免引脚悬空导致的输入数据不确定,我们需要在这里加上上拉或者下拉电阻。
如果接入上拉电阻,当引脚悬空时,还有上拉电阻来保证引脚的高电平·(上拉输入称为默认为高电平的输入模式) ,下拉同理。
上拉电阻和下拉电阻的阻值比较大,是一种弱上拉和弱下拉,目的是尽量不影响正常的输入操作。
由于浮空输入的电平不确定,因此端口一定要接上一个连续的驱动源,不能出现悬空的状态。
#pic_center

施密特触发器的作用:对输入电压进行整形,它的执行逻辑是,如果输入电压大于某一阈值,输出就会瞬间升为高电平,如果输入电压小于某一阈值,输出就会瞬间降为低电平。
在这里插入图片描述

施密特触发器作用的例子如下:这里使用了两个比较阈值(绿色)来进行判断,中间留有一定的变化范围,这样可以有效避免因为信号波动造成的输出抖动现象。
在这里插入图片描述

模拟输入GPIO无效,引脚直接接入到内部ADC。(这个是连接到ADC,因为ADC需要接受模拟量,所以这根线是接到施密特触发器前面的)
在这里插入图片描述
在这里插入图片描述

复用功能:这个是连接到其他需要读取端口的外设上,比如串口的输入引脚等,这根线接收的是数字量,所以在施密特触发器后面
在这里插入图片描述

输出部分
如果选择通过输出数据寄存器进行控制,就是普通的IO口输出,写这个数据寄存器的某一位就可以操作对应某个端口。左边的是位设置/清除寄存器,这可以用来单独操作输出数据寄存器的某一位,而不影响其他位。
推挽、开漏或关闭
在推挽输出模式下,P-Mos和N-Mos均有效。(这种模式下,高低电平均有较强的驱动能力,所以推挽输出可以叫做强推输出模式)
在这里插入图片描述

数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,就是输出高电平。
在这里插入图片描述

数据寄存器为0时,上管断开,下管导通,输出直接接到VSS,就是输出低电平。
在这里插入图片描述

开漏模式:P-Mos无效,只有N-Mos工作。(它只有低电平有驱动能力,高电平是没有驱动能力的)
数据寄存器为1时,下管断开,这是输出相当于断开,也就是高阻模式。
在这里插入图片描述
数据寄存器为0时,下管导通,输出直接接到VSS,也就是输出低电平。
在这里插入图片描述

开漏输出的作用

  1. 可作为通信协议的驱动方式,如IIC的通信引脚。在所机通信的情况下,这个模式可以避免各个设备的相互干扰。
  2. 用于输出5v的电平信号。比如在IO口外接一个上拉电阻到5V的电源。

当输出低电平时,由内部N-MOS直接接VSS。
在这里插入图片描述
当输出高电平时,由外部的上拉电阻拉高到5V.
在这里插入图片描述

关闭模式:当引脚配置为输入模式的时候,这两个MOX管均无效,就是输出关闭,端口电平由外部信号来控制。

复用的输出,引脚电平是由片上外设控制。引脚的控制权转移到了片上外设,由片上外设来控制。在复用输入部分,片上外设也可以读取引脚的电平。普通的输入也是有效的,顺便接受电平信号。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值