关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解

关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解:

以正点原子按键输入实验为例:

(1)按键KEY0<——>PE4  按键另一端接GND

(2)按键KEY1<——>PE3  按键另一端接GND

(3)按键WK_UP<——>PA0 按键另一端接VCC

  个人理解:

         首先上下拉的目的是给IO口设定一个默认的状态,比如按键控制使能的话,如果按键按下是高电平有效的话,我们就下拉,让该IO口在默认状态下处于低电平(即没有按键按下时IO口检测到的总是低电平,只有按键按下的时候IO口才会检测到高电平);如果按键按下是低电平有效的话,我们就上拉,让该IO口在默认状态下处于高电平(即没有按键按下时IO口检测到的总是高电平,只有按键按下的时候IO口才会检测到低电平)。

        有点绕,简化理解:就是让GPIO输入脚在没有输入信号的情况下能够有确定的电平信号被我们知道,上拉就是高电平(因为上拉输入是芯片内部有个电阻一端连接的是VCC,下拉就是低电平(因为下拉输入是芯片内部有个电阻一端连接的是GND)。

        比如我们这里的KEY0/KEY1按键,在没有被按下的时候,因为一端连接的是GND且是断开的,另一端所连接的GPIO管脚要配置成默认状态下检测到的是高电平信号(只有按键按下检测到的才是低电平信号,即低电平有效),所以按键初始化时相关IO要配置成上拉输入;而WK_UP按键,在没有被按下的时候,因为一端连接的是VCC且是断开的,另一端所连接的GPIO管脚要配置成默认状态下检测到的是低电平信号(只有按键按下检测到的才是高电平信号,即高电平有效),所以按键初始化时相关IO要配置成下拉输入。

        再简化:上拉输入就是指在IO口上(芯片内部)串一个电阻到vcc,正常情况IO监测到的是高电平,适用于外部接GND的按键输入;下拉输入是指在IO口上(芯片内部)串一个电阻到GND,正常情况IO监测到的是低电平,适用于外部接VCC的按键输入。(实在还不理解,记住会用也行)

        知识点补充:

       (1)上拉就是将不确定的信号通过一个一端连接VCC的电阻钳位在高电平,电阻同时起限流作用。

       (2)下拉就是将不确定的信号通过一个一端连接GND的电阻钳位在低电平。 

       (3)一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
       (4)数字电路有三种状态:高电平、低电平、和高阻态。有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使电平处于稳定状态,具体视设计要求而定。

      (5)I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用:比如,当一个接有上拉电阻的端口设为输入状态时,他的常态就为高电平,用于检测低电平的输入;反之,当一个接有下拉电阻的端口设为输入状态时,他的常态就为低电平,用于检测高电平的输入。 
    (6)上拉电阻有时还用来解决总线驱动能力不足时,为总线提供电流,即一般说法的拉电流;下拉电阻是用来吸收电流的,也就是灌电流。比如有I2C总线使用会上拉一个10k的电阻。
    (7)端口选择还应该注意端口的初始状态。这个状态是系统复位时的状态,是不受上层软件控制的,假如选择的端口正常是高电平有效的,那么应该另选一个系统复位时是下拉状态的端口来使用。

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xw-何妨吟啸且徐行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值