我是靠谱客的博主 靓丽滑板,最近开发中收集的这篇文章主要介绍关于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)端口选择还应该注意端口的初始状态。这个状态是系统复位时的状态,是不受上层软件控制的,假如选择的端口正常是高电平有效的,那么应该另选一个系统复位时是下拉状态的端口来使用。

 

最后

以上就是靓丽滑板为你收集整理的关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解的全部内容,希望文章能够帮你解决关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部