关于按键的问题,为什么要设置成上拉模式而不是下拉?

2019-07-20 09:51发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
a496298685
2019-07-20 14:03
这取决于按键的另一端接的是什么。pull要朝向这个电平的相反方向进行,这样有助于抵抗外界的干扰。

从另一个角度说,实际上,我们要求,输入口读状态时,绝对禁止悬空,必须进行上下拉。 TIM截图20180124203636.png
比如探索者开发板上,
KEY0、KEY1、KEY2一端接单片机IO,另一端接地。那么,我们期望的结果是:

按下后,单片机读到0
未按下,单片机读到1

如果不设置上下拉,那么单片机IO就是高阻的输入状态,其状态是读不准的,与内部结构和周边电磁环境都有关。

一个典型的验证方法是这样的,
while(1)GPIO_PutPin(LED,GPIO_Get(Key));//不启用上下拉

单片机用电脑USB供电,电脑连接220V电源,然后用手触摸开发板电路,可以发现LED灯以50Hz的频率进行闪烁。
因为人体、空气、大地形成了一个电容器,微弱的感应电压被未上下拉的单片机IO口检测到,从而产生了误动作。

其实,不设置上下拉,也是有用的,这正是触摸按键的设计原理。

一周热门 更多>