树莓派论坛

 找回密码
 立即注册

RPi.GPIO库中检测开关按下问题

1234pttk1 发表于 2016-11-17 20:06:53 | 显示全部楼层 |阅读模式
  1. # coding=utf-8
  2. import RPi.GPIO as GPIO
  3.   GPIO.setmode(GPIO.BOARD)
  4.   num=0
  5.   GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  6.   def callback(channel):
  7.       global num
  8.       num=num+1
  9.      print "rising",num

  10. GPIO.add_event_detect(15, GPIO.RISING,callback, bouncetime=1000)
  11. while 1:
  12.      pass
复制代码
测试代码如上,复位开关一端接引脚15,一端接引脚17(3.3V),开关按下时确实有输出。但是问题如下:
1. 不小心用金属碰到引脚15或者其他引脚时,引脚15会触发上升沿,输出 rising
2. 如果callback函数执行时间太长(如10s),那么一次按压开关动作callback会执行两次(将bouncetime增加到10s以上可以勉强解决)
会的高手帮我看看怎么解决这个问题

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )