演示源代码
本演示中的资源代码仅作为参考。
basic_edge_detection.py:
''' Please make sure the button is connected to the correct pins. The following table describes how to connect the button to the 40-pin header. ----------------------------------------- _______button____Pin Number_____Pin Name one end 37 GPIO60 The other end 39 GND ----------------------------------------- ''' import VisionFive.gpio as GPIO import sys import time key_pin = 37 # the callback function for edge detection def detect(pin, edge_type): if (1 == edge_type): print("*-----------------------------------*") print("Rising edge is detected on pin {} !".format(pin)) elif (2 == edge_type): print("*-----------------------------------*") print("Falling edge is detected on pin {} !".format(pin)) print() def main(): # Configure the direction of key_pin as input. GPIO.setup(key_pin, GPIO.IN) ############################# # edge falling can be detected ############################# GPIO.add_event_detect(key_pin, GPIO.FALLING) # query if edge event happens edge_detected = GPIO.event_detected(key_pin) # remove detection for edge event GPIO.remove_event_detect(key_pin) # edge falling can be detected, also set bouncetime(unit: millisecond) to avoid jitter GPIO.add_event_detect(key_pin, GPIO.FALLING, callback=detect, bouncetime=2) # remove detection for edge event GPIO.remove_event_detect(key_pin) # edge rising can be detected, also set bouncetime(unit: millisecond) to avoid jitter GPIO.add_event_detect(key_pin, GPIO.RISING, callback=detect, bouncetime=2) # remove detection for edge event GPIO.remove_event_detect(key_pin) print("*-----------------------Case 1-------------------------*") print("Please press the key on pin {} once at any time !!!".format(key_pin)) # Both edge rising and falling can be detected, also set bouncetime(unit: millisecond) to avoid jitter GPIO.add_event_detect(key_pin, GPIO.BOTH, callback=detect, bouncetime=2) while True: i = 1; if __name__ == "__main__": sys.exit(main())