以下是我的代码,我经常得到" NameError:name' start'未定义"
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(0)
tr = 4
ec = 18
GPIO.setup(tr, GPIO.OUT)
GPIO.setup(ec, GPIO.IN)
GPIO.output(tr, True)
time.sleep(0.0001)
GPIO.output(tr, False)
while GPIO.input(ec) == 0:
start = time.time()
while GPIO.input(ec) == 1:
end = time.time()
distance = (end-start) * 17200
print('Distance: {} cm'.format(distance))
GPIO.cleanup()
任何人都可以拥有更好的代码吗?
答案 0 :(得分:2)
您在while循环中定义start
,如果执行时GPIO.input(ec) != 0
,则不会定义start
,您将收到该错误。
将start = 0
或start = time.time()
放在while
循环之前,以确保它已定义。
end
变量