python+树莓派gpio无效语法
我正在实习,需要做一个树莓派项目,这个项目要有一个按钮,可以用来加减1,并且可以重置为0,记录公司和现场的无事故天数。这里是我写的代码,但在“While True”那部分出现了无效语法的错误。我之前没有编程经验,所以任何帮助都非常感谢!
GPIO.setmode(GPIO.BCM)
GPIO.Setup (17, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (18, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (21, GPIO.IN, Pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (22, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup (23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN
while True:
Try:
If(GPIO.input(17)== 1):
writeTexts(+1,-370,55)
writeTexts(today +difference1,-100,-200)
If(GPIO.input(18)== 1):
WriteTexts(-1,-370,55)
If(GPIO.input(21)== 1):
writeTexts(0,-370,55)
If(GPIO.Input(22)==1):
writeTexts(+1,280,55)
If(GPIO.input(23)== 1):
writeTexts(-1,280,55)
writeTexts(today +difference1,550,-200)
If(GPIO.input(24)==1):
writeTexts(0,280,55)
sleep(.01)
except KeyboardInterrupt
exit()
GPIO.Cleanup ()
2 个回答
1
你在 while True
之前的那一行缺少一个最后的闭合 )
。
GPIO.Setup (24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN
另外,Try
和 If
应该用小写字母。
1
确保在代码的最上面导入了 GPIO,time
以及其他需要的模块:
GPIO.setmode(GPIO.BCM)
GPIO.Setup (17, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (18, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (21, GPIO.IN, Pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (22, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup (23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.Setup (24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
while True:
try:
if GPIO.input(17) == 1: # all `if` should be lowercase and the `try`
writeTexts(+1,-370,55) # don't need `()` in if statements.
writeTexts(today + difference1,-100,-200)
if GPIO.input(18) == 1:
WriteTexts(-1,-370,55)
if GPIO.input(21) == 1:
writeTexts(0,-370,55)
if GPIO.Input(22) == 1:
writeTexts(+1,280,55)
if GPIO.input(23) == 1:
writeTexts(-1,280,55)
writeTexts(today + difference1,550,-200)
if GPIO.input(24) == 1:
writeTexts(0,280,55)
sleep(.01)
except KeyboardInterrupt: # missing `:`
exit()
GPIO.Cleanup ()