STM32外设-GPIO输入(仅数字)
STM32外设-GPIO输入
- 一,输入的三种类型
- 1. 上拉 (Pull-up)输入
- 2. 下拉 (Pull-down)输入
- 3. 浮空 (Floating / High-Impedance)输入
- 二,下拉电阻的作用
学完基础的led,接下来学习key即按键,但在连接按键之前,我们必须了解单片机 GPIO (通用输入/输出) 引脚作为输入时,有三种模式:上拉 (Pull-up)、下拉 (Pull-down) 和 浮空 (Floating)。它们决定了引脚在没有明确外部信号时(比如按键没按下)的默认电平状态,这对于稳定读取按键至关重要。
一,输入的三种类型
1. 上拉 (Pull-up)输入
它是啥? 想象引脚内部有一根"橡皮筋"轻轻地把它往"高电平"(通常是电源 VCC)拉。当没有更强的力量(比如按键按下接地)作用时,它就保持在高电平。
为啥用? 防止引脚"悬空"乱飘。就像一个开关,默认是开着的,只有你按下时才关断。
何时用? 当你需要引脚在空闲时稳定地输出高电平,或者连接的按键按下时会把引脚拉到低电平 (GND)。这是最常见的按键连接方式之一。
2. 下拉 (Pull-down)输入
它是啥? 和上拉相反,这次"橡皮筋"是把引脚往"低电平"(地线 GND)拉。默认状态是低电平。
为啥用? 同样是为了防止悬空,提供一个明确的默认状态。
何时用? 当你需要引脚空闲时稳定在低电平,或者连接的按键按下时会把引脚接到高电平 (VCC)。相对上拉来说,用得稍微少一些。
3. 浮空 (Floating / High-Impedance)输入
它是啥? 引脚内部既不上拉也不下拉,像个与世无争的"隐士"。它的电平完全由外部连接决定。如果什么都没接,它的状态就像空气中的羽毛,极其不稳定,容易受到各种电磁干扰。
为啥用? 有些特定场景需要引脚呈现高阻态,不影响外部电路(比如模拟信号输入,或者需要外部电路精确控制电平)。但在简单的数字输入,尤其是按键检测中,极少使用浮空模式,因为它太容易"受惊"了。
注意! 直接用浮空模式连接按键通常是不可靠的,你需要外部电路(比如外部上拉或下拉电阻)来明确默认电平。
正确选择和配置输入模式是按键能够被可靠读取的前提。对于大多数简单的按键电路,使用单片机内部的上拉或下拉功能是最方便有效的方式。
二,下拉电阻的作用
- 在引脚输入时,默认引脚为低电平
输入引脚内部为施密特触发器,这里用三极管代替
P点处为高阻态,电平漂浮不定
当加上一个下拉电阻时,NP结阻抗无穷大,输入引脚为低电平
如果不加下拉电阻直接接地,也可以保证输入引脚为低电平,但是如果我想将输入引脚默认为高电平时,如下图,因为电压有内阻,内阻分得5V电压,输入引脚依旧为低电平
所以这里下拉电阻还有一个作用是:保证输入引脚可以为高电平
下拉电阻的作用:
1,将输入引脚钳位在低电平
2,保证输入引脚可以为高电平