GPIO的四种输入模式介绍

描述

GPIO的介绍

GPIO (general purpose input output)是通用输入输出端口的简称,通俗来讲就是单片机上的引脚,在STM32中,GPIO的工作模式被细分为8种,由4个32位寄存器共同控制。

输出和输入都是针对芯片引脚来讲的(即引脚的对外输出,和外界对引脚的输入)。

四种输入模式介绍

输入模式下可读取端口的高低电平或电压。例如各类传感器(使用ADC功能),如果要将获取的电平传送给单片机的某一个引脚,那就要将这个引脚设置为输入模式。

1、GPIO_Mode_AIN 模拟输入

这种输入模式比较特殊,该模式主要为片上外设ADC而配置,从外部读取模拟信号,当设置为模拟输入时,GPIO会失效,引脚直接接入内部ADC。

特点:相较于其他输入模式只能读取到逻辑高/低电平(数字量),该模式能读取到细微变化的值(模拟量)。通俗来讲就是,别的模式只能读取0和1,而模拟输入可以读取到0-1的变化区间。

主要应用:所有要用到ADC模拟输入的外设(例如烟雾传感器,引脚需要接收模拟信号进而计算电压值),低功耗下省电。

2、GPIO_Mode_IN_FLOATING 浮空输入

数据通道中仅接入TTL触发器(作用是将相对缓慢变化的模拟信号变成矩形信号)整形,随后输入输入数据寄存器。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。该种工作模式未接入任何上拉/下拉电阻。

主要应用:可用于按键KEY实验、发送接收信号RX、TX、IIC、USART等。(但按键一般更常用到上拉下拉输入,待会再重点记录)。主要还是发送和接收信号的引脚常设置为浮空输入。

3、GPIO_Mode_IPD 下拉输入

可读取引脚电平,与浮空输入相比,它内部连接下拉电阻,悬空时默认为低电平,其余相同。

4、GPIO_Mode_IPU 上拉输入

可读取引脚电平,与浮空输入相比,它内部连接上拉电阻,悬空时默认为高电平,其余相同。

主要应用:

①按键的使用

②器件的外部中断(IRQ)引脚触发中断条件为下降沿触发/低电平触发,这样在无信号输入时始终保持高电平,如果有事件触发中断IRQ可以输出一个低电平,进而可产生(下降沿/低电平)中断,此时就可以将该引脚设置为上拉输出,使中断条件满足。

③同理,器件的外部中断(IRQ)引脚触发中断条件为上升沿触发/高电平触发时,该端口可以选择下拉输入模式。

重点记录:按键与上拉/下拉输入

输入端口

由图不难看出:当KEY_UP按下后,会接入VCC的高电平,而当按键不按下时,即为悬空状态(无信号输入),此时IO输入是未知的,程序可能卡死在这里或者跑飞。那我们就要用到一个下拉电阻,使该引脚在悬空状态下电平被拉低。即按键KEY_UP按下为高电平,不按下为低电平。

同理,当KEY0、KEY1、KEY2三个按键按下时会接入GND的低电平,而不按下时输入未知。为了避免程序跑飞,采用上拉电阻,让按键按下时为低电平,按键松开为高电平。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分