美文网首页
Stm32之GPIO工作模式

Stm32之GPIO工作模式

作者: 月与树 | 来源:发表于2020-04-26 11:46 被阅读0次

GPIO的8种工作模式

GPIO初始化结构体的时候,必须要配置合适的工作模式,这样才能使得IO口发挥应有的作用。工作模式大体上共分为输入输出两类,共8种,下面将介绍这8种工作模式。

GPIO的工作模式

输入模式

GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入

如上输入模式共有4种,主要是读出IO口的相关数据,比如按钮外设就需要读出高低电平来判断它的按下与松开。它们的数据通过TTL施密特触发器将模拟信号转化为数字信号输入在数据寄存器中,或者是直接由模拟信号输入到片上外设。

施密特触发器可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波形,而且由于施密特触发器具有滞回特性,所以可用于抗干扰,其应用包括在开回路配置中用于抗扰,以及在闭回路正回授/负回授配置中用于实现多谐振荡器。

  • 模拟输入:主要用于ADC外设的输入

  • 上拉输入:接入上拉电阻输入数字信号1

  • 下拉输入:接入下拉电阻输入数字信号0

  • 浮空输入:什么电阻都不接,由施密特触发器输入,输入阻抗大,为一个不确定的值,通常作为IIC,USART等通信协议的接收端。

值得注意的一点是当GPIO被设置为输入模式的时候,就不需要配置其输出速度了,当然GPIO_Init()也会自动的忽略这一点的。

输出模式

GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
  • 推挽输出:线路经过一个类似CMOS反相器的的电路单元,输出高电平PMOS导通,低电平CMOS导通,要输出大电流一般采用这种输出方式,比如说是LED灯的点亮。
  • 开漏输出:无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。

开漏输出的这一特性另一个好处在于可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件。推挽输出的最大特点是可以真正的输出高电平和低电平,在两种电平下都具有驱动能力。

相关文章

  • Stm32之GPIO工作模式

    GPIO的8种工作模式 GPIO初始化结构体的时候,必须要配置合适的工作模式,这样才能使得IO口发挥应有的作用。工...

  • STM32F10x之GPIO

    1 GPIO概述 1.1 功能描述 STM32的GPIO端口相对比较复杂,所以使用起来也困难许多,STM32的GP...

  • STM32的GPIO内部结构及相关寄存器

    1. GPIO简介 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接...

  • 12.28 嵌入式

    今天老师讲了GPIO工作原理和寄存器,GPIO的输入工作模式 输入浮空,输入上拉,输入下拉,模拟输入;输出模式 开...

  • 1. 控制 LED - GPIO OUTPUT

    资源推荐:STM32 Tutorial 01 - GPIO Operations using HAL 在 STM3...

  • 12/12

    今天学习了gpio和stm32的点亮小灯程序,关于stm32的板子芯片内部,了解了一些

  • STM32低功耗模式下GPIO如何配置最节能?

    STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点,亲测有效(基于STM32L011芯片 LL库),...

  • STM32外部中断

    STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。GPIO 的管脚 GP...

  • STM32端口复用和重映射

    端口复用 STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为...

  • 初识树莓派gpio端口以及led闪烁实例

    一、初识gpio gpio有两种模式:板上模式和BCM模式 注:树莓派的gpio功能都是通过处理器的引脚输出接头实...

网友评论

      本文标题:Stm32之GPIO工作模式

      本文链接:https://www.haomeiwen.com/subject/fussihtx.html