概述
关于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管脚是配置为上拉输入还是下拉输入的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复