初始化callb时给定的参数数无效

2024-04-19 12:39:35 发布

您现在位置:Python中文网/ 问答频道 /正文

刚买了一个树莓皮工具箱,开始修补。 我有以下中断:

GPIO.add_event_detect(23, GPIO.FALLING, callback=partial(sensor1, LastPour1, PourCounter1) 

方法的定义如下:

def sensor1(LastPour1, Pourcounter1):

然而,当我参加活动时,我得到:

TypeError: sensor1() takex exactly 2 arguments (3 given)

请开导我! 以下是大部分相关代码

# GPIO 23 set up as input. It is pulled up to stop false signals
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)


VOL_PER_TICK = 5
PourCounter1 = 0
PourCounter2 = 0
LastPour1 = time.time()
LastPour2 = time.time()
Vol1 = 0
Vol2 = 0
Beer1 = ""
Beer2 = ""
workfile = 'beer_data.txt'

def sensor1(LastPour1, PourCounter1):
    "sensor 1 tripped"

    if time.time() - LastPour1 < 5:
            PourCounter1 = PourCounter1 + 1
    else:
            print "NEW POUR\n"
            PourCounter1 = 1
            LastPour1 = time.time()

    GPIO.output(19, True)
    time.sleep(0.05)
    GPIO.output(19, False)



GPIO.add_event_detect(23, GPIO.FALLING, callback=partial(sensor1, LastPour1, PourCounter1))

Tags: eventaddoutputgpiotimedefcallbackpartial