If 语句 python 中的类型错误

问题描述 投票:0回答:1

每次我运行这段代码时,我都会在 if 语句中收到这种类型的错误。我很困惑为什么会这样。

TypeError: Function takes exactly 2 arguments (1 given)

这是代码。

import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(14, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

while True:
  if GPIO.output(14) == GPIO.HIGH:
    print("Button Pressed")
python raspberry-pi gpio
1个回答
0
投票

解决方案是检查按钮是否被按下作为输入,以便您的代码解决方案不使用输出。

import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(14, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

while True:
  if GPIO.input(14) == 1:
    print("Button Pressed")

这是一个使用

input
功能逻辑的解决方案,但据我所知,您可以使用该功能
add_event_detect
并定义一个可以按需工作的功能

import RPi.GPIO as GPIO

def button_callback(channel):
    print("Button Pressed")

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(14, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

GPIO.add_event_detect(14,GPIO.RISING,callback=button_callback)

唯一不同的是,如果它不循环代码,则使用

while
循环,如上面的代码。

© www.soinside.com 2019 - 2024. All rights reserved.